2015-07-29 8 views
5

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

उत्तर

2

डेटाबेस ट्यूनिंग सलाहकार विशिष्ट प्रश्नों या कई प्रश्नों को ट्यून करने के लिए उपयोगी हो सकता है।

लेकिन

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

यदि आपके पास विशेष रूप से लंबे समय तक चलने वाले प्रश्न हैं, तो आप ट्यूनिंग सलाहकार के सुझावों का संदर्भ दे सकते हैं (लेकिन यह समझने की कोशिश करें कि उन्हें उन्हें टेबल पर फेंकने से पहले क्यों सुझाव दिया गया है)।

एक अन्य (संभावित रूप से) अच्छी सुविधा सलाहकार के लिए पार्स फ़ाइल प्रदान कर रही है। यदि आप "उत्पादन जैसे" ट्रेस प्राप्त करने में सक्षम हैं, तो संभावित रूप से आपको कई तालिकाओं पर फेंकने के लिए फायदेमंद इंडेक्स दे सकते हैं। "उत्पादन की तरह" मेरा मतलब है कि यदि आप एक ट्रेस प्राप्त कर सकते हैं जो लंबे समय तक व्यवहार की तरह उत्पादन का प्रतिनिधित्व करता है। एक विकल्प उत्पादन का पता लगाने के लिए है (देखें कि यह एक बुरा विचार क्यों हो सकता है https://dba.stackexchange.com/questions/818/using-sql-profiler-on-a-database-thats-in-production) ... लेकिन सावधान रहें यह बहुत भारी हाथ हो सकता है। यूआई का उपयोग किये बिना छोटे पैडप्रिंट ट्रेस को कैसे करें: http://tranpeter.blogspot.com/2013/10/sql-server-proffer-offline.html

+0

यदि मैं एक अच्छी ट्रेस फ़ाइल के साथ डीटीए प्रदान करता हूं, तो क्या यह किसी अन्य प्रश्न के लिए सूचकांक का सुझाव देने पर अन्य प्रश्नों पर विचार करेगा? –

+0

और आप जो समझते हैं (जो गलत हो सकता है) से +1 –

+1

के लायक है, डीटीए ट्रेस फ़ाइल द्वारा प्रदान किए गए सभी प्रश्नों को ध्यान में रखता है। फिर भी, यह अपने सुझावों पर अधिक हो सकता है, लेकिन इसके सुझाव आपके ऐप के भीतर अधिक "असली वर्कफ़्लो" पर आधारित होंगे, इसलिए यह * कुछ * में * अधिक उपयोगी हो सकता है। फिर भी, उन इंडेक्स का मूल्यांकन करें जिन्हें आप वास्तव में जोड़ रहे हैं यह देखने के लिए कि वे समझ में हैं या नहीं। – Kritner

4

बिल्कुल नहीं। डाटाबेस इंजन ट्यूनिंग सलाहकार का एक बहुत ही सीमित गुंजाइश है, केवल एक विशेष वर्कलोड के लिए अनुक्रमित करने की सिफारिश करता है। लेकिन वास्तविक वर्कलोड भिन्न हो सकता है।

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

सिर्फ इतना है कि ... सिफारिशों के रूप में डीटीए की सिफारिशों लो। वास्तविक उत्पादन-समकक्ष वर्कलोड में अनुशंसित अनुक्रमण को जांचने के उचित परिश्रम के लिए कोई विकल्प नहीं है।

+0

आपके उत्तर के लिए धन्यवाद और +1 –

+1

मैं जोड़ना चाहता हूं, प्रत्येक क्वेरी की निष्पादन योजना का मूल्यांकन करना चाहता हूं जिसका आप बार-बार डेटा के साथ उपयोग करेंगे और अनुभव प्राप्त करेंगे परिणामों का उपयोग कर सूचकांक निर्माण। आप चौंकाने के लिए अन्य टूल्स का पता लगा सकते हैं। – Juan

+0

आपको नहीं लगता कि जब आप बिल्कुल नहीं कहते हैं तो आप अतिरंजित होते हैं। –

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

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