Membuat indeks pada tabel yang benar-benar sibuk


11

Kami memiliki tabel dengan banyak insert\selectsetiap waktu (seperti 100 mesin memasukkan \ memperbarui setiap detik).

Apa cara terbaik untuk membuat indeks di atas meja yang tidak dapat dikunci bahkan untuk sedetik pun?

Jika saya membuat indeks, saya yakin itu akan mengunci permintaan, dan saya tidak bisa melakukannya.

Ini meja besar dengan 1 juta baris +.

Jawaban:


12

Tidak ada opsi seperti CREATE INDEX WITH (NOLOCK)(dan bahkan NOLOCKpada permintaan mengambil kunci, hanya lebih sedikit daripada tanpa petunjuk).

Yang terbaik yang akan Anda lakukan adalah WITH (ONLINE = ON), yang masih mengambil kunci di awal dan akhir operasi (keduanya berkaitan dengan rencana kompilasi terkait dengan tabel - lihat posting blog ini oleh Paul Randal untuk lebih jelasnya ).

Ini secara signifikan akan mengurangi dampak membangun indeks pada aplikasi Anda, tetapi tidak ada cara praktis untuk sepenuhnya menghilangkan dampak itu. Selain itu, fitur ini tidak gratis: ia memerlukan Edisi Perusahaan.

Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.