Saya setuju dengan Cade Roux .
Artikel ini akan membuat Anda berada di jalur yang benar:
Satu hal yang perlu diperhatikan, indeks berkerumun harus memiliki kunci unik (kolom identitas yang saya sarankan) sebagai kolom pertama. Pada dasarnya itu membantu memasukkan data Anda di akhir indeks dan tidak menyebabkan banyak disk IO dan Page splits.
Kedua, jika Anda membuat indeks lain pada data Anda dan mereka dibangun dengan cerdas mereka akan digunakan kembali.
mis. bayangkan Anda mencari tabel pada tiga kolom
negara bagian, wilayah, pos.
- Anda terkadang mencari berdasarkan negara bagian saja.
- Anda terkadang mencari berdasarkan negara bagian dan wilayah.
- Anda sering mencari berdasarkan negara, wilayah, pos.
Kemudian indeks dengan negara bagian, county, zip. akan digunakan dalam ketiga pencarian ini.
Jika Anda mencari dengan zip saja cukup banyak maka indeks di atas tidak akan digunakan (oleh SQL Server) karena zip adalah bagian ketiga dari indeks itu dan pengoptimal kueri tidak akan melihat indeks itu sebagai bermanfaat.
Anda kemudian dapat membuat indeks pada Zip saja yang akan digunakan dalam contoh ini.
Ngomong-ngomong, kita dapat mengambil keuntungan dari kenyataan bahwa dengan pengindeksan Multi-Kolom, kolom indeks pertama selalu dapat digunakan untuk pencarian dan ketika Anda mencari hanya dengan 'menyatakan' itu efisien tetapi belum seefisien indeks Kolom Tunggal pada 'status' '
Saya kira jawaban yang Anda cari adalah bahwa itu tergantung pada klausa tempat Anda dari pertanyaan yang sering digunakan dan juga oleh grup Anda.
Artikel itu akan banyak membantu. :-)
IDENTITY, GUID, etc
. 3) "Lalu indeks dengan negara bagian, county, zip. Akan digunakan dalam ketiga pencarian ini." salah, dan bertentangan dengan "kolom pertama dapat digunakan". 2nd & subs cols dalam indeks tidak dapat digunakan untuk pencarian.Iya. Saya sarankan Anda memeriksa artikel Kimberly Tripp tentang pengindeksan .
Jika indeks "meliputi", maka tidak perlu menggunakan apa pun kecuali indeks. Di SQL Server 2005, Anda juga bisa menambahkan kolom tambahan ke indeks yang bukan bagian dari kunci yang dapat menghilangkan perjalanan ke seluruh baris.
Memiliki beberapa indeks, masing-masing pada satu kolom dapat berarti bahwa hanya satu indeks yang digunakan sama sekali - Anda harus merujuk pada rencana eksekusi untuk melihat apa efek yang ditawarkan berbagai skema pengindeksan.
Anda juga dapat menggunakan panduan tuning untuk membantu menentukan indeks apa yang akan membuat kueri atau beban kerja yang diberikan melakukan yang terbaik.
sumber
Indeks multi-kolom dapat digunakan untuk permintaan referensi semua kolom:
Ini dapat dilihat secara langsung menggunakan indeks multi-kolom. Di sisi lain, paling banyak satu indeks kolom tunggal dapat digunakan (itu harus mencari semua catatan memiliki Column1 = 1, dan kemudian memeriksa Column2 dan Column3 di masing-masing).
sumber
Satu hal yang sepertinya terlewatkan adalah transformasi bintang. Indeks Persimpangan operator menyelesaikan predikat dengan menghitung set baris yang dipukul oleh masing-masing predikat sebelum I / O dilakukan pada tabel fakta. Pada skema bintang Anda akan mengindeks setiap kunci dimensi individu dan pengoptimal kueri dapat menyelesaikan baris mana yang akan dipilih oleh perhitungan persimpangan indeks. Indeks pada kolom individual memberikan fleksibilitas terbaik untuk ini.
sumber
Jika Anda memiliki kueri yang akan sering menggunakan kumpulan kolom yang relatif statis, membuat indeks penutup tunggal yang mencakup semuanya akan meningkatkan kinerja secara dramatis.
Dengan meletakkan beberapa kolom dalam indeks Anda, pengoptimal hanya perlu mengakses tabel secara langsung jika kolom tidak ada dalam indeks. Saya banyak menggunakan ini dalam pergudangan data. Kelemahannya adalah melakukan hal ini dapat menghabiskan banyak biaya, terutama jika data sangat fluktuatif.
Membuat indeks pada kolom tunggal berguna untuk operasi pencarian yang sering ditemukan dalam sistem OLTP.
Anda harus bertanya pada diri sendiri mengapa Anda mengindeks kolom dan bagaimana mereka akan digunakan. Jalankan beberapa paket permintaan dan lihat kapan mereka sedang diakses. Penyetelan indeks adalah naluri sebanyak sains.
sumber