SQLServer查詢哪些索引利用率低

ywxj_001 發表於 2022-06-20
SqlServer SQL
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    OBJECTPROPERTY(S.[OBJECT_ID],'IsUserTable') = 1


SQLServer查詢哪些索引利用率低

user_seeks bigint 通過使用者查詢執行的搜尋次數。
user_scans bigint 未使用“seek”謂詞的使用者查詢的掃描數。
user_lookups bigint 由使用者查詢執行的書籤查詢次數。
user_updates bigint 通過使用者查詢執行的更新次數。 這包括“插入”、“刪除”和“更新”,表示未完成實際行的運算元。 例如,如果在一個語句中刪除 1000 行,則此計數遞增 1

該  user_updates  列是基礎表或檢視上插入、更新或刪除操作導致的索引的維護計數器。 可以使用此檢視確定應用程式極少使用的索引。 還可以使用此檢視確定引發維護開銷的索引。 您可能要刪除引發維護開銷但不用於查詢或只是偶爾用於查詢的索引。


USER_SEEKS,
USER_SCANS,
USER_LOOKUPS均為0,表示該索引已經很久沒用使用,可以刪除。



來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/22996654/viewspace-2901759/,如需轉載,請註明出處,否則將追究法律責任。