Apa fungsi indeks pembangunan kembali?

8

Saya masih muda di dunia IT, dan saya belajar setiap hari. Saya baru saja mulai bekerja dengan database SQL, dan saya punya banyak pertanyaan mendasar.

Satu khususnya, Apa fungsi indeks pembangunan kembali? Saya belum menemukan jawaban yang baik melalui Google.

Umpan balik sangat dihargai.

Albert Green
sumber

Jawaban:

11

Indeks dibangun kembali untuk menghapus fragmentasi. Ada seribu satu artikel dan posting blog tentang sifat fragmentasi indeks tetapi @BrentOzar baru-baru ini memposting penjelasan yang sangat ringkas di Stop Khawatir Tentang SQL Server Fragmentasi .

Mari kita mundur sejenak dan berpura-pura bahwa basis data Anda adalah buku telepon yang disusun dengan nama belakang, nama depan.

Ketika orang-orang pindah ke kota Anda, kami harus menambahkannya ke buku telepon. Idealnya, setiap halaman memiliki ruang kosong, dan kami mengaturnya dengan faktor pengisian. Ketika SQL Server membangun kembali indeks, ia menggunakan faktor pengisi untuk memutuskan berapa banyak ruang kosong yang tersisa di setiap halaman. Jika tidak ada ruang kosong yang cukup, SQL Server harus melakukan penataan ulang - tetapi tidak bisa benar-benar mendorong halaman baru di tengah buku telepon. Buku itu sudah terikat. Kami harus memasang lebih banyak halaman kosong di bagian akhir.

Masalah # 1 - Fragmentasi Internal: Kami memiliki halaman yang baru ditambahkan tanpa banyak hal di dalamnya. Masalah # 2 - Fragmentasi Eksternal: Halaman buku telepon rusak.

Artikel terbaru Brent menawarkan perspektif yang diperbarui pada salah satu seri sebelumnya, Temuan Indeks Fragmentasi . Artikel yang lebih lama menyoroti statistik dari banyak studi yang lebih tua tentang efek merusak dari fragmentasi, semakin baru membuat kasus untuk mengurangi persentase besar dari kerugian kinerja dengan memastikan database Anda di-cache sepenuhnya.

Ram sekarang sangat murah sehingga mungkin merupakan solusi risiko termurah, termudah, dan terendah untuk database yang sangat terfragmentasi. Terutama jika sifat desain database sedemikian rupa sehingga secara alami akan terfragmentasi meskipun upaya pemeliharaan.

Mark Storey-Smith
sumber
3

Jawaban yang terlalu disederhanakan - Pembuatan kembali indeks adalah cara untuk menghapus fragmentasi indeks. Itu menjatuhkan indeks yang ditentukan dan menciptakan lagi menghapus fragmentasi dalam proses. Anda mungkin menemukan artikel ini bermanfaat

RK Kuppala
sumber