Sql-Server

SQL Server:索引使用率統計資訊?

  • August 15, 2019

SQL Server 中有沒有辦法獲取索引使用情況的報告?

我知道從SQL Server 2005開始,您可以根據計劃記憶體中的內容獲取使用資源最多的查詢的報告:

替代文字

我很想知道是否有任何不再使用或幾乎不使用的索引,特別是多鍵索引。可以想像,查詢計劃記憶體還包含計劃將使用的索引,那麼也許 index using 也在那裡?

我終於設法在 Google 中找到了一個搜尋片語,它讓我得到了SQL Server 2005及更高版本的答案:

如何在 SQL Server (mssqltips.com) 中獲取索引使用資訊:

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 

結果如下:

OBJECT_NAME          INDEX_NAME                 USER_SEEKS USER_SCANS USER_LOOKUPS USER_UPDATES
Properties           IX_Properties_PropertyName 0          455477     0            0
Locations_Depricated NULL                       0          71255      0            0
Users                PK__Users__UserIDInteger   137772     58637      47134        72
CurrencyTypes        PK_CurrencyTypes           3397       55554      0            0
ExchangeRates        IX_ExchangeRates           35736      46621      0            0
CurrencyCategories   IX_CurrencyCategories_1    0          25734      0            0
CurrencyCategories   IX_CurrencyCategories      0          22287      19888        0

或者,從 mssqltips 熱連結圖像: 替代文字

引用自:https://serverfault.com/questions/85202