" How are my indexes being used? "
The following TSQL (from MSSQL Tips) shows us...
SELECT OBJECT_NAME(S.[OBJECT_ID]) AS [OBJECT NAME], I.[NAME] AS [INDEX NAME], USER_SEEKS, USER_SCANS, USER_LOOKUPS, USER_UPDATES FROM sys.dm_db_index_usage_stats AS S INNER JOIN sys.indexes AS I ON I.[OBJECT_ID] = S.[OBJECT_ID] AND I.INDEX_ID = S.INDEX_ID WHERE OBJECT_NAME(S.[OBJECT_ID]) = 'mytable'
It can easily be rolled up like this to produce 1 line per index >
SELECT OBJECT_NAME(S.[OBJECT_ID]) AS [OBJECT NAME], I.[NAME] AS [INDEX NAME], SUM(USER_SEEKS) AS TOTAL_SEEKS, SUM(USER_SCANS) AS TOTAL_SCANS, SUM(USER_LOOKUPS) AS TOTAL_LOOKUPS, SUM(USER_UPDATES) AS TOTAL_UPDATES FROM sys.dm_db_index_usage_stats AS S INNER JOIN sys.indexes AS I ON I.[OBJECT_ID] = S.[OBJECT_ID] AND I.INDEX_ID = S.INDEX_ID --WHERE OBJECT_NAME(S.[OBJECT_ID]) = 'tablename' GROUP BY OBJECT_NAME(S.[OBJECT_ID]) ,I.[NAME] ORDER BY OBJECT_NAME(S.[OBJECT_ID]) ,I.[NAME]
No comments:
Post a Comment