2008-09-22 12 views
5

कहें कि मेरे पास एक एसक्यूएल 2005 डेटाबेस में 2,000,000+ रिकॉर्ड और कुछ इंडेक्स के साथ एक टेबल है। मेरे प्रश्नों में इंडेक्स संकेतों का उपयोग करने के लिए क्या फायदा है? क्या प्रश्नों में सूचकांक संकेतों का उपयोग करने के लिए कभी नुकसान हैं?एसक्यूएल इंडेक्स संकेत सहित क्वेरी प्रदर्शन को कैसे प्रभावित करता है?

उत्तर

3

सबसे पहले, कुछ घंटों में सामान्य वर्कलोड के लिए अपने डेटाबेस में गतिविधि की एक .trc फ़ाइल उत्पन्न करने के लिए SQL प्रोफाइलर का उपयोग करने का प्रयास करें। और फिर SQL सर्वर प्रबंधन स्टूडियो टूल्स मेनू पर "डेटाबेस इंजन ट्यूनिंग सलाहकार" का उपयोग यह देखने के लिए करें कि क्या यह किसी भी अतिरिक्त इंडेक्स, समग्र इंडेक्स या कवरेज इंडेक्स को बताता है जो लाभकारी हो सकता है।

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

2

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

1

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

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

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

3

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

मेरे अनुभव में मुझे पता चला है कि इंडेक्स संकेतों की आवश्यकता के लिए यह बहुत आम नहीं है, मेरा मानना ​​है कि मेरे पास शायद 2-3 प्रश्न हैं जिनका उपयोग आज किया जा रहा है .... उचित इंडेक्स निर्माण और डेटाबेस अनुकूलन होना चाहिए आपको प्रदर्शन डेटाबेस में सबसे अधिक रास्ता मिल जाता है।

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