यदि आप किसी गतिशील टी-एसक्यूएल का उपयोग करते हैं तो आप ऐसा नहीं कर सकते हैं। डायनामिक टी-एसक्यूएल ऑब्जेक्ट निर्भरताओं की किसी भी जांच में दिखाई नहीं देगा।
इसके बजाय, आप किसी भी प्रश्न से संदर्भित वस्तुओं को संदर्भित नहीं करने के लिए DMV sys.dm_db_index_usage_stats का उपयोग कर सकते हैं। यहाँ एक प्रश्न मुझे लगता है कि के लिए SQLServerPedia पर किया था है:
http://sqlserverpedia.com/wiki/Find_Indexes_Not_In_Use
क्वेरी, प्रदर्शन ट्यूनिंग अनुक्रमित लिए बनाया गया है, ताकि आप कुछ लाइनें बदलाव करने की आवश्यकता होगी। यहाँ संशोधित क्वेरी है:
SELECT
o.name
, indexname=i.name
, i.index_id
, reads=user_seeks + user_scans + user_lookups
, writes = user_updates
, rows = (SELECT SUM(p.rows) FROM sys.partitions p WHERE p.index_id = s.index_id AND s.object_id = p.object_id)
, CASE
WHEN s.user_updates < 1 THEN 100
ELSE 1.00 * (s.user_seeks + s.user_scans + s.user_lookups)/s.user_updates
END AS reads_per_write
, 'DROP INDEX ' + QUOTENAME(i.name)
+ ' ON ' + QUOTENAME(c.name) + '.' + QUOTENAME(OBJECT_NAME(s.object_id)) as 'drop statement'
FROM sys.dm_db_index_usage_stats s
INNER JOIN sys.indexes i ON i.index_id = s.index_id AND s.object_id = i.object_id
INNER JOIN sys.objects o on s.object_id = o.object_id
INNER JOIN sys.schemas c on o.schema_id = c.schema_id
WHERE OBJECTPROPERTY(s.object_id,'IsUserTable') = 1
AND s.database_id = DB_ID()
ORDER BY reads
ध्यान रखें कि यह सब अनुक्रमित पकड़ता है, और आप में छान-बीन की आवश्यकता होगी - ढेर अपने वस्तुओं में से कुछ हो सकता है, कुछ अनुक्रमित संकुल हो सकता है, आदि मैं छोड़ देंगे यह एक विकी के रूप में है, इसलिए कोई मेरे द्वारा अधिक महत्वाकांक्षी है, इसे एक समर्पित सूची बनाने के लिए संपादित कर सकता है। :-D
स्रोत
2011-03-22 11:49:44
एसक्यूएल सर्वर के किन संस्करणों अपने डेटाबेस के भीतर प्रत्येक देखने के लिए, नियम, डिफ़ॉल्ट, ट्रिगर, जांच बाधा, डिफ़ॉल्ट बाधा, और संग्रहीत प्रक्रिया की जाँच करेगा? –
यह प्रश्न लगभग [लगभग एक] है (http://stackoverflow.com/questions/5352353/find-all-tables-not-referenced-in-stored-procedures) लेकिन उत्तर अलग हैं। – DOK
@ डीओके - कौन सा? आपने इस सवाल पर वापस लिंक किया है! पकड़ के लिए –