Basierend auf dieser Abfrage, wenn ich eine geringe Anzahl von Gesamtlesevorgängen (sehr nahe an 0 oder 0, wie 1 oder 2) und eine hohe oder moderate Anzahl von Benutzeraktualisierungen (ich konnte mit dieser Abfrage keine Einfügungen oder Löschungen finden) mit sehe Bei einer großen Zeilenanzahl sollte ich theoretisch den Index entfernen.
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
Ich möchte hier die Richtigkeit dieser Annahme überprüfen. Zum Beispiel scheint ein Index, der seit über einem Jahr existiert, aber nie gelesen, aber stark aktualisiert wurde, eine schlechte Idee zu sein. Gibt es ein Szenario, in dem diese Annahme ungültig ist?