Berdasarkan permintaan ini, jika saya melihat jumlah total pembacaan yang rendah (sangat dekat dengan 0 atau 0, seperti 1 atau 2) dan jumlah pembaruan pengguna yang tinggi atau sedang (saya tidak dapat menemukan sisipan atau menghapus dengan permintaan ini) dengan jumlah baris besar, secara teori saya harus menghapus indeks.
SELECT DISTINCT
OBJECT_NAME(s.[object_id]) AS ObjectName
, p.rows TableRows
, i.name AS [INDEX NAME]
, (user_seeks + user_scans + user_lookups) AS TotalReads
, user_updates UserUpdates
FROM sys.dm_db_index_usage_stats s
INNER JOIN sys.indexes i ON i.[object_id] = s.[object_id]
AND i.index_id = s.index_id
INNER JOIN sys.partitions p ON p.object_id = i.object_id
WHERE OBJECTPROPERTY(s.[object_id],'IsUserTable') = 1
AND s.database_id = DB_ID()
AND i.name IS NOT NULL
ORDER BY (user_seeks + user_scans + user_lookups) ASC
Saya ingin memeriksa ulang asumsi ini di sini. Misalnya, indeks yang sudah ada selama lebih dari setahun tetapi belum pernah dibaca, tetapi sangat diperbarui, sepertinya itu adalah ide yang buruk untuk dimiliki. Apakah ada skenario di mana asumsi ini tidak valid?
sumber
Yup tampilan hanya memiliki statistik sejak reboot terakhir. Untuk membantu mengurangi bahwa saya menyiapkan pekerjaan yang menjalankan kueri seperti yang Anda posting bulanan di pagi hari sebelum jendela pemeliharaan kami mulai menangkap informasi setiap bulan sebelum server reboot. Itu memungkinkan saya untuk kembali lebih jauh dan melihat tren dari waktu ke waktu. Saya juga memiliki permintaan kedua yang berlari mencari kemungkinan indeks yang hilang.
Satu hal yang perlu dipertimbangkan adalah indeks apa yang ada di meja. Mungkin tidak digunakan karena sebagian besar atau sepenuhnya merupakan duplikat dari indeks lain. Iya. SQL server memungkinkan Anda membuat dua indeks yang berbeda tetapi identik sehingga memungkinkan untuk sepenuhnya berlebihan.
Anda juga bisa melihat apa yang mungkin menjadi rencana kueri untuk kueri yang menggunakan indeks itu jika indeks itu dihapus. Apakah ada indeks lain untuk digunakan atau apakah itu kemungkinan harus kembali ke pemindaian tabel penuh.
Indeks akhirnya menjadi seni sebanyak itu sebagai sains karena sangat sulit untuk mengetahui segala sesuatu tentang apa yang mungkin dijalankan dan akhirnya sering berubah.
sumber