कैसे पता करें कि कब / यदि मेरे पास बहुत सारे सूचकांक हैं?


26

Microsoft SQL Server Profiler को हर बार चलाना, यह मुझे नए इंडेक्स और आँकड़ों के एक समूह के साथ सुझाव देता है ("... 97% अनुमानित सुधार ...")।

मेरी समझ से हर जोड़ा इंडेक्स एसक्यूएल SELECTक्वेरी को तेज कर सकता है, लेकिन इंडेक्स को एडजस्ट करने के लिए UPDATEया INSERTक्वेरी को धीमा भी कर सकता है।

मुझे आश्चर्य होता है कि मेरे पास "बहुत सारे" सूचकांक / आँकड़े कब हैं?

हो सकता है कि इस पर कोई स्पष्ट जवाब न हो लेकिन कुछ नियम-विरुद्ध हैं।



धन्यवाद, @ निक। मैंने अपना प्रश्न पोस्ट करने से पहले Google और dba.se.com को ध्यान से खोजा। मेरी राय में, यह असंबंधित है। मैं यह जानना नहीं चाहता हूं कि क्या सूचकांक की आवश्यकता है, बल्कि यह निर्धारित करने के लिए कि बहुत अधिक सूचकांक कब बनाते हैं UPDATEऔर INSERTबयान बहुत धीमी गति से होते हैं।
ऊवे कीम

3
क्या आपने वहां जवाब पढ़ा है? उदाहरण के लिए स्वीकृत उत्तर, कुछ विश्लेषण लिपियों के लिंक हैं जो अप्रयुक्त इंडेक्स की पहचान करने में आपकी सहायता कर सकते हैं जिन्हें हटा दिया जाना चाहिए। जब आपके पास "बहुत अधिक" सूचकांक होते हैं, तो आप अपने प्रश्न का उत्तर देने में सहायक हो सकते हैं।
निक चामास

2
इसके अलावा dba.stackexchange.com/q/3831/630
gbn

जवाबों:


24

इस प्रश्न का उत्तर देने में आपका लोड प्रोफ़ाइल सबसे महत्वपूर्ण कारक है।

  • यदि आपका लोड रीड-इंटेंसिव है, तो आप चाहते हैं कि इंडेक्स आपके सबसे भारी या लगातार प्रश्नों को संतुष्ट करे।

  • यदि आपका लोड राइट-इंटेंसिव है, तो ध्यान से इंडेक्स करें। उदाहरण के लिए, किसी भी जरूरत की जरूरतों को पूरा करने के लिए सूचकांक, साथ ही साथ आपके एक या दो सबसे महंगे चयन।

  • यदि आपका लोड एक OLAP एक है, तो शायद ही आप कभी भी लक्ष्य तालिकाओं को स्कैन करेंगे।

आप कैसे जानते हैं कि आपके पास बहुत सारे सूचकांक हैं?

  • जब आप देख सकते हैं कि उनमें से कुछ का उपयोग किसी भी प्रश्न द्वारा नहीं किया गया है।

  • बार-बार DELETE, UPDATE या INSERT एक क्वेरी प्लान दिखाता है जिसमें कई महंगे इंडेक्स चेंजेज (यानी नॉनस्ट्रेस्ड इंडेक्स इंसर्ट , अपडेट या डिलीट ) शामिल होते हैं। यह निर्धारित करने के लिए अपने निर्णय का उपयोग करें कि क्या उन डीएमएल कथनों पर जुर्माना उस लाभ के लायक है, जिसे आप अपडेट किए जाने वाले इंडेक्स से प्राप्त कर रहे हैं।


8

यदि आपके पास अनुक्रमणिकाएँ हैं जिन्हें बनाए रखा जा रहा है, लेकिन उनका उपयोग कभी नहीं किया जा रहा है (या शायद ही कभी उपयोग किया जा रहा है) तो आपके पास कई सूचकांक हैं। यदि उपयोगकर्ता प्रदर्शन को बेहतर बनाने के लिए आपके सभी अनुक्रमित का उपयोग किया जा रहा है तो आपके पास कई नहीं हैं।


क्या मुझे " से " को " दो" में बदलने की सलाह देनी चाहिए , क्योंकि मैं उन्हें संपादित नहीं कर सकता क्योंकि मेरे संपादन को न्यूनतम 6 साल बदलने की आवश्यकता होगी?
उवे कीम
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.