2011-02-28 12 views
10

मेरे पास कुछ पुरानी टेबल हैं, जो मुझे लगता है, लगभग बेकार इंडेक्स हैं। मैं आसानी से कैसे सुनिश्चित कर सकता हूं कि उन्हें छोड़ने से पहले कभी भी उपयोग नहीं किया जा रहा है।यह बताएं कि किसी सूचकांक का कभी भी उपयोग किया जाता है

उत्तर

4

sys.dm_db_index_usage_stats डीएमवी पर एक नज़र डालें। बस ध्यान रखें कि SQL सर्वर पुनरारंभ होने पर इन काउंटर रीसेट हो जाते हैं।

+7

यह भी ध्यान रखें कि इंडेक्स का शायद ही कभी उपयोग किया जा सकता है, लेकिन जब आप अपने वार्षिक बकवास चलाते हैं तो आपके पास लेखांकन विभाग हो सकता है। – Sam

7

जो जवाब के आधार पर मैं इस के साथ आया था:

SELECT 
     row_number() over(order by user_seeks,user_lookups,user_scans), 
     [Database] = d.name, 
     [Schema]= s.name, 
     [Table]= o.name, 
     [Index]= x.name, 
     [Scans] = user_scans, 
     [Seeks] = user_seeks, 
     [Lookups] = user_lookups, 
     [Last Scan] = last_user_scan, 
     [System Scans] = system_scans 
FROM sys.dm_db_index_usage_stats u 
INNER JOIN sys.sysdatabases d on u.database_id = d.dbid 
INNER JOIN sys.sysindexes x on u.object_id = x.id and u.index_id = x.indid 
INNER JOIN sys.objects o on u.object_id = o.object_id 
INNER JOIN sys.schemas s on s.schema_id = o.schema_id 
where x.name is not null 
order by 1 desc 
0

बाहर this article की this section इयान Stirk द्वारा चेक में 2007 उपकरणों में से बहुत अच्छा सेट, अपने अप्रयुक्त अनुक्रमित पाने के भी शामिल है।

0

जांचें कि क्या उपयोगकर्ता इंडेक्स की तलाश कर रहा है, यदि आप सर्वर को पुनरारंभ नहीं करते हैं, तब तक आप जिस तालिका का उपयोग कर रहे हैं, उसके साथ चयन कर रहे हैं, यह आपको एक स्पष्ट विचार देगा कि कौन सी अनुक्रमणिका का उपयोग किया जा रहा है या नहीं।

SELECT DISTINCT OBJECT_NAME(sis.OBJECT_ID) TableName, si.name AS IndexName, sc.Name AS ColumnName, 
sic.Index_ID, sis.user_seeks, sis.user_scans, sis.user_lookups, sis.user_updates 
FROM sys.dm_db_index_usage_stats sis 
INNER JOIN sys.indexes si ON sis.OBJECT_ID = si.OBJECT_ID AND sis.Index_ID = si.Index_ID 
INNER JOIN sys.index_columns sic ON sis.OBJECT_ID = sic.OBJECT_ID AND sic.Index_ID = si.Index_ID 
INNER JOIN sys.columns sc ON sis.OBJECT_ID = sc.OBJECT_ID AND sic.Column_ID = sc.Column_ID 
WHERE sis.Database_ID = DB_ID('database_name') AND sis.OBJECT_ID = OBJECT_ID('table_name'); 
GO 
संबंधित मुद्दे

 संबंधित मुद्दे