Menjalankan Microsoft SQL Server Profiler setiap sekarang, itu menyarankan saya dengan sekelompok indeks dan statistik baru untuk membuat ("... 97% perkiraan peningkatan ...").
Dari pemahaman saya, setiap indeks yang ditambahkan dapat membuat SELECT
kueri SQL lebih cepat tetapi juga UPDATE
atau INSERT
kueri lebih lambat karena indeks harus disesuaikan.
Yang saya heran adalah, kapan saya memiliki indeks / statistik "terlalu banyak"?
Mungkin tidak ada jawaban yang jelas tentang ini kecuali beberapa aturan praktis.
sql-server
performance
index
index-tuning
Uwe Keim
sumber
sumber
UPDATE
danINSERT
pernyataan terlalu lambat.Jawaban:
Profil beban Anda adalah faktor terpenting dalam menjawab pertanyaan ini.
Jika beban Anda baca-intensif, Anda ingin indeks memenuhi kueri terberat atau paling sering Anda.
Jika memuat Anda intensif-tulis, indeks dengan hati-hati. Indeks untuk memenuhi pencarian kebutuhan UPDATE, misalnya, serta satu atau dua SELECT Anda yang paling mahal.
Jika beban Anda adalah OLAP, indeks hemat karena Anda akan memindai tabel target.
Bagaimana Anda tahu Anda memiliki terlalu banyak indeks?
Ketika Anda dapat melihat bahwa beberapa dari mereka tidak digunakan oleh pertanyaan apa pun.
DELETE, UPDATE, atau INSERT yang sering muncul menunjukkan rencana kueri yang melibatkan beberapa perubahan indeks yang mahal (mis. Memasukkan indeks yang tidak tercakup , memperbarui , atau menghapus ). Gunakan penilaian Anda untuk menentukan apakah hukuman pada pernyataan DML tersebut sepadan dengan perolehan yang Anda dapatkan dari indeks yang harus diperbarui.
sumber
Jika Anda memiliki indeks yang sedang dipertahankan tetapi tidak pernah digunakan (atau jarang digunakan) maka Anda harus banyak indeks. Jika semua indeks Anda digunakan untuk meningkatkan kinerja pengguna, maka Anda tidak perlu banyak.
sumber