आरंभ करने के लिए तीन बहुत तेज कदम:
1)
USE DatabaseName
SELECT [TableName] = OBJECT_NAME(object_id),
last_user_update, last_user_seek, last_user_scan, last_user_lookup
FROM sys.dm_db_index_usage_stats
WHERE database_id = DB_ID('DatabaseName')
आपको बताएंगे कि पिछली बार प्रत्येक इंडेक्स का उपयोग किया गया था, जिसमें क्लस्टर इंडेक्स भी शामिल था। तो कम से कम आपको एक स्वाद दें जिसके लिए तालिकाओं को एक्सेस किया जा रहा है (और जो नहीं हैं।)
2) यदि आप का उपयोग किया जा रहा है, तो एक घंटे के लिए (यदि आप प्री-एसक्यूएल 2012 चला रहे हैं) विस्तारित इवेंट सत्र (या सर्वर-साइड प्रोफाइलर ट्रेस चालू करें)। आप किसी विशिष्ट क्रम में अनुप्रयोग में विभिन्न कार्यों को करने के लिए एक उपयोगकर्ता से पूछ सकते हैं ताकि आप इसे ट्रेस / सत्र के साथ सहसंबंधित कर सकें।
एक उपयोगी सुझाव: यदि आप ऐप का उपयोग करने वाले कनेक्शन स्ट्रिंग को संशोधित कर सकते हैं, तो संलग्न करें ", अनुप्रयोग नाम = AppNameGoesHere" ताकि आप उस विशेष एप्लिकेशन नाम पर एक ट्रेसिंग फ़िल्टर चला सकें। वैसे भी अच्छा अभ्यास।
3) एक गैर-उत्पादन सर्वर पर काम करने वाले एप्लिकेशन का एक संस्करण प्राप्त करें। एप्लिकेशन के लिए व्यवहार-संचालित परीक्षणों की एक सूची विकसित करें ("जब उपयोगकर्ता नए आइटम बटन पर क्लिक करता है, तो यह उस उपयोगकर्ता के लिए एक नया आइटम बनाता है," आदि) नरम हटाने वाली वस्तुओं को शुरू करें जिन्हें आप महसूस करते हैं कि उनका नाम बदलकर परीक्षणों पर कोई असर नहीं पड़ता है। (मैं एक प्रारूप का उपयोग करता हूं जैसे ऑब्जेक्टName_DEPRECATED_YYYYMMDD - वह तारीख जिस दिन मैं वास्तव में इसे हटाने की योजना बना रहा हूं।) अपने सभी परीक्षणों को पुन: सत्यापित करें।
विस्तारित ईवेंट्स सत्र के संयोजन के माध्यम से, सूचकांक उपयोग DMV, और आपके सॉफ्ट डिलीट, आपको एप्लिकेशन द्वारा उपयोग की जा रही मुख्य वस्तुओं और एक अच्छी आम सहमति की पहचान करने में सक्षम होना चाहिए जिस पर ऑब्जेक्ट क्या करता है।
सौभाग्य!