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?