使用sys.dm_db_index_usage_stats與sys.indexes可以輕鬆的瞭解Index的使用數
在Index的管理,我們常常會關心Index的使用情況,為什麼要關注Index的使用情況呢?原因如下;
查詢Index使用狀況的語法如下:
--查詢最常使用的Index
SELECT DB_NAME(a.database_id) DBName,OBJECT_NAME(a.[object_id]) AS TableName,
b.name,(a.user_seeks + a.user_scans + a.user_lookups) AS [UsaCount],
a.user_updates FROM sys.dm_db_index_usage_stats a LEFT JOIN sys.indexes b
on a.index_id=b.index_id
WHERE DB_NAME(database_id)=DB_NAME()
AND b.name IS NOT NULL
AND b.[object_id]
IN
(
SELECT [object_id] FROM sys.dm_db_index_usage_stats
WHERE DB_NAME(database_id)=DB_NAME()
)
ORDER BY [UsaCount] DESC
執行結果:
我們使用sys.dm_db_index_usage_stats與sys.indexes列出有使用過的Index,在搭配sys.dm_db_index_usage_stats的user_seeks + user_scans + user_lookups來判斷Index的使用狀況。如此就可以輕鬆的瞭解Index的使用數。