Mengapa indeks REBUILD tidak mengurangi fragmentasi indeks?

Jawaban:

39

Jika indeks sangat kecil (saya percaya kurang dari 8 halaman) itu akan menggunakan luasan campuran. Oleh karena itu, akan muncul seolah-olah masih ada fragmentasi yang tersisa, karena luas perumahan akan berisi halaman dari beberapa indeks.

Karena itu, dan juga fakta bahwa dalam indeks sekecil itu fragmentasi biasanya diabaikan, Anda hanya harus membangun kembali indeks dengan ambang batas halaman tertentu. Ini adalah praktik terbaik untuk membangun kembali indeks terfragmentasi yang minimal 1000 halaman .

Thomas Stringer
sumber
34

Ini juga dapat terjadi dengan indeks yang sangat BESAR.

Saya memiliki beberapa indeks di atas meja dengan sekitar 700m baris yang saya tidak bisa defragmen di bawah sekitar 30%. Masalahnya tidak cukup ruang kosong yang berdekatan di dalam database untuk mengatur indeks secara berurutan.

Untuk mengatasi indeks yang sangat besar yang tidak akan defragment, solusi TERBAIK adalah pra-ukuran database baru dan memindahkan semua objek Anda ke DB itu, kemudian buat kembali indeks Anda di sana.

JNK
sumber
1

Saya telah berjuang dengan ini selama beberapa waktu dan seperti JNK, saya pikir masalahnya adalah ruang kosong dan fragmentasi fisik pada disk. Namun, apa yang Anda lakukan tentang itu pada SSD SAN?

Saya sekarang telah menemukan bahwa mungkin ide yang baik untuk hanya memasukkan index_level = 0. Inilah yang dilakukan dalam naskah Ola Hallengren.

Perbaikan lain yang harus dilakukan

 REBUILD With (maxdop = 1)

Dengan cara ini Anda memastikan peningkatan maksimum.

vikjon0
sumber