Na podstawie tego zapytania, jeśli widzę małą liczbę odczytów (bardzo blisko 0 lub 0, np. 1 lub 2) oraz dużą lub umiarkowaną liczbę aktualizacji użytkowników (nie mogłem znaleźć wstawek ani usunięć przy tym zapytaniu) z dużą liczbę wierszy, teoretycznie powinienem usunąć 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
Chcę tutaj sprawdzić dokładność tego założenia. Na przykład indeks, który istnieje od ponad roku, ale nigdy nie został odczytany, ale wysoce zaktualizowany, wydaje się, że posiadanie go byłoby złym pomysłem. Czy istnieje scenariusz, w którym to założenie jest nieważne?
źródło
Tak, widok ma statystyki tylko od ostatniego restartu. Aby to złagodzić, skonfigurowałem zadanie, które uruchamiało zapytanie takie jak to, które publikowałeś co miesiąc rano, zanim nasze okno konserwacji zaczęło rejestrować informacje co miesiąc przed ponownym uruchomieniem serwera. To pozwoliło mi cofnąć się w czasie i spojrzeć na trendy w czasie. Miałem też drugie zapytanie, w którym szukałem potencjalnie brakujących indeksów.
Inną rzeczą do rozważenia jest to, jakie inne indeksy znajdują się w tabeli. Może się nie przyzwyczaić, ponieważ w większości lub całkowicie jest duplikatem innego indeksu. Tak. Serwer SQL pozwala tworzyć dwa różne, ale identyczne indeksy, dzięki czemu może być całkowicie redundantny.
Możesz także sprawdzić, jaki może być plan kwerend dla zapytania, które korzystało z tego indeksu, gdyby ten indeks został usunięty. Czy użyłby innego indeksu, czy też prawdopodobnie musiałby wrócić do pełnego skanowania tabeli.
Indeksy są tak samo sztuką, jak nauką, ponieważ naprawdę trudno jest wiedzieć wszystko o tym, co można uruchomić, i tak czy inaczej często się zmienia.
źródło