क्या संयुक्त राष्ट्र की गैर-उपयोग की गई INDEX अभी भी क्वेरी की गति बढ़ा सकती है?


13

यह एक अजीब स्थिति है, लेकिन मुझे उम्मीद है कि किसी के पास इसका जवाब होगा।

कुछ प्रदर्शन समस्या निवारण के दौरान, हमने एक गैर-सूचीबद्ध INDEX को एक तालिका में जोड़ा, जैसा कि अनुरोध किया गया था sp_BlitzIndex। हमने अगले दिन इसके उपयोग की जाँच की, और इसमें 0 रीड्स ( 0 स्कैन / लाइक, 0 सिंगलटन लुक्स ) दिखाए गए , इसलिए हमने इसे निष्क्रिय कर दिया।

अगले ही मिनट, हमें उसी ऐप-स्लोनेस (प्रदर्शन में परेशानी) की शिकायत मिलती है जिसे हम INDEX जोड़ते समय पहली बार में जांच और हल करने की कोशिश कर रहे थे।

अब, मैं सिद्धांत रूप में जानता हूं, यह पूरी तरह से संयोग लगता है। INDEX निश्चित रूप से, औसत रूप से, उपयोग नहीं किया गया था । इसे अक्षम करने से क्वेरी प्रदर्शन में गिरावट नहीं हुई। लेकिन यह लगभग TOO संयोग है।

सवाल

तो मेरा सवाल, बस इतना है, इस प्रकार है:

क्या यह संभव है , कि एक गैर-सूचीबद्ध INDEX, जिसके उपयोग-आँकड़े (DMV / / से sp_BlitzIndex) कोई उपयोग नहीं दिखाते हैं, फिर भी प्रभावित तालिका पर किसी भी तरह से क्वेरी प्रदर्शन में मदद कर रहे हैं ?


पुनश्च: कृपया मुझे लौकिक छोड़ें "यह परीक्षण करें!" प्रतिक्रिया; मुझे इसका परीक्षण करने के लिए कल तक इंतजार करना होगा क्योंकि तालिका का भारी उपयोग किया गया है और रात के रखरखाव खिड़की तक सूचकांक को फिर से सक्षम (पुनः निर्मित) नहीं किया जाएगा। और प्रदर्शन मुसीबतों की प्रकृति छिटपुट और कठिन है वैसे भी पुन: पेश करना; मैं यह नहीं कह रहा हूं "नहीं, मैं इसका परीक्षण नहीं करूंगा", मैं कह रहा हूं कि मुझे पता है कि हमें परीक्षण करना है, और इस पर योजना बनानी है, लेकिन मैं सिद्धांत और / या अनुभवात्मक ज्ञान के लिए कह रहा हूं।
नाटेज

1
आपको यह ब्लॉग पोस्ट उपयोगी लग सकता है; brentozar.com/archive/2016/11/…
रिच बेननर

जवाबों:


13

हाँ, यह तब हो सकता है जब SQL सर्वर यह निर्णय लेता है कि उस सूचकांक के आँकड़े अधिक सटीक / उपयोगी हैं और अनुमान लगाने के लिए और उस योजना का उपयोग करने के लिए उस आँकड़े का उपयोग करता है।

जब एसक्यूएल सर्वर ने एक सूचकांक से आँकड़े का उपयोग करने और किसी अन्य सूचकांक को स्कैन / तलाशने का निर्णय लिया है, तो मैं ऐसी स्थितियों में आया हूँ।

संपादित करें - यह लागू होने का कारण नहीं हो सकता है क्योंकि मुझे लगता है कि आपने सूचकांक को निष्क्रिय कर दिया है। मैंने उस परिदृश्य का परीक्षण नहीं किया है।


स्पष्ट, संक्षिप्त प्रतिक्रिया के लिए धन्यवाद! हाँ नहीं, यह तुरंत अक्षम नहीं किया गया था, यह तब तक सक्षम और पूरी तरह से "लाइव" था जब तक कि मैंने उपयोगकर्ता-शिकायत / प्रदर्शन-मंदी से पहले इसे निष्क्रिय नहीं कर दिया। आप अच्छे हैं :)
NateJ

1
@ नैटज इस सिद्धांत का परीक्षण CREATE STATISTICSइसके बजाय किया जा सकता है CREATE INDEX
जकूब कानिया
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.