2013-04-15 57 views
0

我有以下幾點:我能找到該索引是電流/使用

SELECT name AS index_name, 
     STATS_DATE(OBJECT_ID, index_id) AS StatsUpdated 
FROM sys.indexes 

是否有可能增加一些信息,所以我有一個想法,如果每個指標是當前和使用?

另外我想在SELECT子句中返回索引所在的表?

+0

請參閱[sys.dm_db_index_usage_stats](http://msdn.microsoft.com/zh-cn/library/ms188755.aspx)。 –

回答

2

我正在使用以下查詢來查找是否使用索引 - 如果查找,掃描和查找爲零,則不使用它。

SELECT TOP 25 
o.name AS ObjectName 
, i.name AS IndexName 
, i.index_id AS IndexID 
, dm_ius.user_seeks AS UserSeek 
, dm_ius.user_scans AS UserScans 
, dm_ius.user_lookups AS UserLookups 
, dm_ius.user_updates AS UserUpdates 
, p.TableRows 
, is_disabled 
,STATS_DATE(i.[OBJECT_ID], i.index_id) AS StatsUpdated 
FROM sys.dm_db_index_usage_stats dm_ius 
INNER JOIN sys.indexes i ON i.index_id = dm_ius.index_id AND dm_ius.object_id = i.object_id 
INNER JOIN sys.objects o on dm_ius.object_id = o.object_id 
INNER JOIN sys.schemas s on o.schema_id = s.schema_id 
INNER JOIN (SELECT SUM(p.rows) TableRows, p.index_id, p.object_id 
       FROM sys.partitions p GROUP BY p.index_id, p.object_id) p 
     ON p.index_id = dm_ius.index_id AND dm_ius.object_id = p.object_id 
WHERE OBJECTPROPERTY(dm_ius.object_id,'IsUserTable') = 1 
AND dm_ius.database_id = DB_ID() 
AND i.type_desc = 'nonclustered' 
AND i.is_primary_key = 0 
AND i.is_unique_constraint = 0 
ORDER BY (dm_ius.user_seeks + dm_ius.user_scans + dm_ius.user_lookups) ASC 
GO 
+0

+1將在今​​天晚些時候測試 - 謝謝 – whytheq

+0

好的 - 因爲我不是管理員,所以'dm_ius'部分不可訪問,但其餘的查詢非常有用 – whytheq

相關問題