Ini adalah situasi yang aneh, tetapi saya berharap seseorang memiliki jawaban.
Selama beberapa pemecahan masalah kinerja, kami menambahkan INDEX NONCLUSTERED ke tabel, seperti yang diminta oleh sp_BlitzIndex
. Kami memeriksa penggunaannya pada hari berikutnya, dan itu menunjukkan 0 membaca ( 0 scan / mencari, 0 pencarian tunggal ), jadi kami menonaktifkannya.
Pada menit berikutnya, kami mendapatkan keluhan tentang kelambatan aplikasi yang sama (masalah kinerja) yang kami coba periksa & atasi sejak awal ketika kami menambahkan INDEX.
Sekarang, saya tahu secara teori, ini kedengarannya murni kebetulan. INDEX terbukti, terukur, TIDAK DIGUNAKAN . Menonaktifkannya TIDAK HARUS menyebabkan penurunan kinerja permintaan. Tapi itu hampir TERLALU kebetulan.
Pertanyaan
Jadi pertanyaan saya, cukup sederhana, adalah sebagai berikut:
Apakah mungkin , bahwa INDEK NONCLUSTERED, yang statistik penggunaannya (dari DMVs sp_BlitzIndex
) menunjukkan TIDAK penggunaan, masih membantu kinerja permintaan entah bagaimana di meja yang terpengaruh?
Jawaban:
Ya itu bisa, ketika SQL Server memutuskan bahwa statistik dari indeks itu lebih akurat / berguna dan menggunakan statistik itu untuk melakukan perkiraan dan membuat rencana.
Saya telah menemukan situasi ketika SQL Server telah memutuskan untuk menggunakan statistik dari satu indeks dan memindai / mencari indeks lain.
Sunting - Ini mungkin tidak berlaku karena saya baru menyadari bahwa Anda telah menonaktifkan indeks. Saya belum menguji skenario itu.
sumber
CREATE STATISTICS
bukanCREATE INDEX
.