2009-07-28 10 views
7

डीएमवी sys.dm_db_missing_index_group_stats में, avg_user_impact नामक एक फ़ील्ड है। प्रति बीओएल, यहएसक्यूएल सर्वर avg_user_impact

औसत हानि लाभ जो उपयोगकर्ता के प्रश्नों का अनुभव कर सकता है यदि यह अनुपलब्ध अनुक्रमणिका समूह लागू किया गया था। मान का अर्थ है कि यदि इस अनुपलब्ध इंडेक्स समूह को कार्यान्वित किया गया था तो क्वेरी लागत औसत प्रतिशत पर गिर जाएगी।

जब मैं याद आ रही अनुक्रमित है कि प्रदर्शन पर सबसे बड़ा प्रभाव पड़ेगा खोजने के लिए क्वेरी चलाने, मैं कुछ का दावा है कि avg_user_impact हजारों में हो जाएगा देखते हैं।

मैंने इन सिफारिशों में से किसी एक का उपयोग करके एक इंडेक्स बनाया, और इसका उपयोग डीएमवी sys.dm_db_index_usage_stats के अनुसार कभी नहीं किया गया था। जैसे ही मैंने इंडेक्स को अक्षम कर दिया, यह तुरंत एक लापता सूचकांक के रूप में फिर से दिखाई दिया।

क्या यह संभव है कि avg_user_impact फ़ील्ड 100 से अधिक दिखाता है, तो यह त्रुटि में है? या यह एक उदाहरण है कि एक अनुशंसित सूचकांक को अभी भी उपयोगिता के लिए कैसे परीक्षण किया जाना चाहिए? मैं गलत या गलतफहमी क्या कर रहा हूं?

उत्तर

7

अनुशंसित अनुक्रमणिका और उपयोगकर्ता प्रभाव दोनों लागत अनुकूलक से अनुमान हैं, और, जैसा कि आप देखते हैं कि कोई गारंटी नहीं है कि वे हमेशा सही होते हैं। मुझे लगता है कि उपयोगकर्ता प्रभाव कॉलम डिजाइन द्वारा 100 से अधिक हो सकता है (हालांकि हमें उम्मीद है कि एसक्यूएल सर्वर टीम से एमएस डेवलपर वास्तविक जवाब के लिए यहां प्रतिक्रिया दे रहा है।) यह जांचना हमेशा महत्वपूर्ण होता है कि क्या इंडेक्स में दिखाया गया है डीएमवी काम करेगा या नहीं। मेरे पास वही अनुभव है जहां एक इंडेक्स दिखाया गया है, लेकिन एक बार बनाया गया वास्तव में उपयोग नहीं किया जाता है, शायद क्वेरी के विवरण या तालिकाओं में डेटा वितरण आदि के कारण। दृश्य सही समय है, खासकर सरल मामलों के लिए, लेकिन हमेशा नहीं।

इसके अलावा, वास्तव में व्यापक इंडेक्स बनाने के बारे में सावधान रहें, क्योंकि सर्वर के व्यस्त होने के आधार पर वे प्रदर्शन का चयन करने में सहायता से अधिक प्रदर्शन/अपडेट प्रदर्शन को चोट पहुंच सकते हैं।

+2

एक और बात - यहां अनुशंसित इंडेक्स के खिलाफ क्वेरी योजनाओं को सहसंबंधित करने के लिए वास्तव में चालाक क्वेरी है: http://social.msdn.microsoft.com/Forums/en-US/sqldatabaseengine/thread/71814032-cd8d-4802-80de -7fb2bee80f41 भी: http://sqlblog.com/blogs/jonathan_kehayias/archive/2009/07/27/digging-into-the-sql-plan-cache-finding-missing-indexes.aspx – onupdatecascade

0

तालिका सांख्यिकी को भी यह सुनिश्चित करने के लिए अद्यतन किया जाना चाहिए कि SQL इंजन नव निर्मित इंडेक्स का उपयोग करें।

के बाद बनाने अनुक्रमित रन

उपयोग AdventureWorks2012; जाओ EXEC sp_updatestats; जाओ

अद्यतन सांख्यिकी कमांड यह सुनिश्चित करेगा कि सभी कैश किए गए एसक्यूएल योजना को अमान्य कर दिया गया है और नई एसक्यूएल निष्पादन योजनाएं नव निर्मित इंडेक्स का उपयोग करके बनाई गई हैं।

+0

हाय, मयंक। आपका कथन पूरी तरह से सही नहीं हो सकता है। यहां एक और स्टैक ओवरफ्लो पोस्ट है जो मदद करनी चाहिए: http://stackoverflow.com/questions/1930726/are-statistics-automatically-updated-when-a-new-index-is-created – Oliver

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