Buat database baru dengan ukuran awal yang besar

8

Saya ingin membuat database baru dengan file data 200GB ( .mdf) dan file log 50GB ( .ldf).

Tapi itu sangat lambat (sekitar 15 menit dan masih belum dibuat). dan itu sangat memakan waktu. Apakah itu normal? jika ya apa fungsinya yang membutuhkan waktu? dapatkah saya meningkatkan kecepatan pembuatannya?

Saya menggunakan SQL Server 2008 R2, Windows Server 2008R2, 16GB RAM (yang saya batasi hanya 12GB dalam ssms) dan Core i7 Cpu

Mehrdad Kamelzadeh
sumber
2
Untuk membuat database besar Anda jauh lebih dibatasi oleh disk I / O daripada yang lainnya. Jika IFI diaktifkan (sesuai jawaban) maka Anda dapat melewatkan menginisialisasi (memusatkan perhatian) file data, tetapi apa pun yang Anda harus menginisialisasi file log. Jika Anda menggunakan disk spinny konsumen khas yang bisa memakan waktu hingga setengah jam untuk file log saja.
Simon Righarts

Jawaban:

17

Kecuali Anda menggunakan Inisialisasi File Instan , SQL Server harus nol semua sektor untuk file. Ini adalah proses yang sangat memakan waktu, terutama untuk 250 GB (data + log). Untuk mempercepat, aktifkan fitur ini dan kemudian SQL Server tidak akan nol ruang untuk file data.

Harap dicatat, SQL Server akan selalu nol file log , jadi Anda masih akan dibatasi oleh itu. Referensi lain untuk inisialisasi file log

Mike Fal
sumber
apa sebenarnya yang terjadi pada hard disk kapan zero out all sectorsdan mengapa SQL selalu nol file log? apa keuntungan dari melakukan itu?
Mehrdad Kamelzadeh
Ini adalah proses menghapus data pada disk Anda. Pada dasarnya, inisialisasi file instan melompati itu. Namun, karena cara file log bekerja secara internal, SQL Server harus nol sepenuhnya untuk menggunakannya. Anda dapat menemukan detail lebih lanjut di sini .
Mike Fal
@MehrdadKamelzadeh SQL server yang mem-zero-out file HANYA berlaku untuk file Data . File log tidak boleh nol diinisialisasi. Lihat ( sqlskills.com/blogs/paul/… ). Lihat juga Cara mengetahui apakah inisialisasi instan Anda diaktifkan? ( sqlskills.com/blogs/paul/… ).
Kin Shah
1
@Kin - File log harus nol diinisialisasi, tetapi dengan IFI Anda dapat melewati nol menginisialisasi file data.
Simon Righarts
7

Jika Anda menjalankan secpol.mscapa nilai dari Kebijakan Lokal, Penugasan Hak Pengguna Perform Volume Maintenance Tasks,?

Asumsi saya pada saat ini adalah bahwa akun layanan SQL Server tidak memiliki hak ini dan karenanya menghapus mdf dan LDF. Tidak bisa menyiasati LDF menjadi nol tetapi Anda dapat melewatinya untuk MDF.

SecPol

Referensi - http://timradney.com/2012/05/30/instant-file-initialization-for-sql-server-performance/

billinkc
sumber