क्या लापता अनुक्रमणिका को नेत्रहीन रूप से जोड़ना ठीक है?


21

लापता अनुक्रमणिका के लिए मेरी धीमी संग्रहीत प्रक्रियाओं का परीक्षण करने के लिए मैं अक्सर SSMS का उपयोग करता हूं। जब भी मुझे "मिसिंग इंडेक्स (इम्पैक्ट xxx)" दिखाई देता है, तो मेरे घुटने की प्रतिक्रिया सिर्फ नए इंडेक्स का निर्माण करना है। यह हर बार एक तेज क्वेरी में परिणाम देता है जहां तक ​​मैं बता सकता हूं।

किसी भी कारण से मुझे ऐसा करना जारी नहीं रखना चाहिए?


1
क्या आप मुझे बता सकते हैं कि कहाँ से मुझे यह अनुपलब्ध सूचकांक सुविधा मिल सकती है।
अली रज़ा इफ़्तिखार

जवाबों:


27

बहुत से कारण।

सबसे बड़ी बात जो मैं सोच सकता हूं, वह यह है कि लापता सूचकांक डीएमवी मौजूदा सूचकांक को ध्यान में नहीं रखता है।

उदाहरण:

आपके पास एक तालिका है ColA, ColB, ColC

वर्तमान में आपके पास एक सूचकांक है ColA। अनुपलब्ध सूचकांक DMV आपको एक सूचकांक जोड़ने का सुझाव देगा (ColA, ColB)। यह सही हो सकता है, लेकिन करने वाली स्मार्ट चीज ColBमौजूदा सूचकांक पर दूसरी कुंजी के रूप में जोड़ना है । अन्यथा आपके पास डुप्लिकेट कवरेज और व्यर्थ स्थान और ओवरहेड है।

इसी तरह, यदि आपके पास एक सूचकांक है ColB INCLUDE (ColA), तो यह एक सूचकांक पर सुझाव दे सकता है ColB INCLUDE (ColC)। फिर से स्मार्ट बात यह है ColCकि मौजूदा सूची में शामिल सूची में जोड़ें ।

सुझाए गए इंडेक्स में एक बहुत ही संकीर्ण दृश्य होता है - वे केवल एक क्वेरी या एक एकल क्वेरी के भीतर एक ही ऑपरेशन को देखते हैं। वे इस बात पर ध्यान नहीं देते हैं कि पहले से मौजूद या आपके अन्य क्वेरी पैटर्न क्या हैं।

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

यदि सभी सुझाए गए इंडेक्सों को जोड़ने के साथ कोई समस्या नहीं थी, तो उन्हें सुझाव देने की भी कोई आवश्यकता नहीं होगी - वे स्वचालित रूप से लागू होंगे।


मैं देख रहा हूं, शायद यही कारण है कि मुझे ऐसा लगता है कि मेरे पास एक बिलियन इंडेक्स है। मुझे लगता है कि मुझे इन व्याख्या योजनाओं को बेहतर ढंग से समझने और इंडेक्सों को मैन्युअल रूप से समझने की कोशिश करनी चाहिए।
ओओ

यदि आप Google duplicate index scriptsया कुछ इसी तरह के हैं तो इन चीजों को ट्रैक करने के लिए बहुत सारे संसाधन हैं। मैं अपने अधिकांश इंडेक्स का प्रबंधन करता हूं और इसके बारे में बहुत कुछ जानता हूं, लेकिन मैं अभी भी समय-समय पर इसे ढूंढता हूं।
JNK

"आपको अभी भी समग्र सूचकांक रणनीति का विश्लेषण करने के लिए एक सोच वाले इंसान की आवश्यकता है और यह सुनिश्चित करें कि आप सूचकांक संरचना कुशल और सामंजस्यपूर्ण है।" +1! एक सलाहकार के रूप में, मैंने सभी प्रकार की स्थितियों में सभी प्रकार के ग्राहक प्राप्त किए हैं। कभी-कभी मुझे वे क्लाइंट मिलते हैं क्योंकि उनके पास बहुत अधिक (और गलत वाले, निरर्थक, आदि) अनुक्रमित होते हैं - ये सभी डेटाबेस इंजन ट्यूनिंग सलाहकार द्वारा सुझाए गए हैं।
माइक वाल्श

@ जेएनके - मैं ऐसा करूंगा।
ओओ

2
महान बिंदु - अतिव्यापी सूचकांक निश्चित रूप से यहां देखने के लिए सबसे बड़ी बात है। और निश्चित रूप से आपके पास और अधिक अनुक्रमित हैं, धीमी प्रविष्टि बन जाती है, साथ ही स्थिरता (जटिलता जोड़ने), आदि के लिए हिट
जेफ एटवुड

8

मैं इस ट्यूनिंग तकनीक का सावधानीपूर्वक उपयोग करने की सलाह देता हूं क्योंकि मैंने क्वेरी योजनाओं द्वारा पॉपअप किए गए अनुक्रमणिका सुझावों को लगातार कम विश्वसनीय पाया है क्योंकि प्रश्न और DB स्कीमा अधिक जटिल हो जाते हैं। यह मेरे अनुभव में कई कारणों से हुआ है:

1) "प्रतिशत सुधार" सभी के लिए रास्ता हो सकता है, लेकिन सबसे सरल प्रश्नों / सबसे स्पष्ट अनुक्रमित, आखिरकार यह केवल एक अनुमान है और जब क्वेरी चलती है तो वास्तविक लागत या वास्तविक rowcounts से प्राप्त नहीं होती है। मैंने देखा है कि सुझाए गए सूचकांक को लागू करने के बाद क्वेरी की लागत बढ़ जाती है, या इसका उपयोग भी नहीं होता है और योजना समान रहती है।

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

3) आप पूरी तस्वीर नहीं देख रहे होंगे। यह केवल ग्राफ़िकल योजना का उपयोग करते समय और XML को देखने के लिए नहीं देखने के लिए विशेष रूप से सच है कि क्या एक से अधिक लापता सूचकांक का सुझाव दिया गया है। चित्रमय योजना में पहले दिखाया गया है जरूरी नहीं कि क्वेरी पर सबसे अधिक प्रभाव वाला व्यक्ति हो।

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

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


2

कारणों का एक गुच्छा है, मुख्य रूप से - यह जानते हुए कि इंडेक्स कैसे काम करता है और संग्रहीत किया जाता है - आप हमेशा एक इंडेक्स बेहतर बनाएंगे, या कम से कम - बदतर नहीं, कि एसएसएमएस सुझाव

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.