पिछले शुक्रवार को, मैंने प्लान एक्सप्लोरर 3.0, नई सुविधाओं के बारे में एक वेबिनार दिया था, और क्यों हमने प्रो संस्करण को खत्म करने और सभी सुविधाओं को मुफ्त देने का फैसला किया। . यदि आप चूक गए हैं, तो आप यहां वेबिनार देख सकते हैं:
- प्लान एक्सप्लोरर 3.0 वेबिनार
कई महान प्रश्न प्रस्तुत किए गए थे, और मैं यहां उनको संबोधित करने का प्रयास करूंगा। हमने प्रेजेंटेशन के दौरान अलग-अलग बिंदुओं पर अपने कुछ प्रश्न भी पूछे, और उपयोगकर्ताओं ने उनका विवरण मांगा, इसलिए मैं सर्वेक्षण प्रश्नों से शुरू करूंगा। हमारे पास 502 उपस्थित लोगों की चोटी थी, और मैं नीचे दिए गए चार्ट पर इंगित करूंगा कि कितने लोगों ने प्रत्येक प्रश्न का उत्तर दिया। चूंकि तकनीकी रूप से वेबिनार शुरू होने से पहले पहला प्रश्न पूछा गया था, इसलिए कम संख्या में लोगों ने उसका उत्तर दिया।
दर्शक प्रश्न
प्र:क्या कोड नमूने उपलब्ध हैं?
ए: हां, मैंने अपने डेमो के लिए जिन तीन सत्रों की फाइलों का इस्तेमाल किया, वे यहां उपलब्ध हैं:
- प्लान एक्सप्लोरर 3.0 वेबिनार डेमो
आप इन्हें प्लान एक्सप्लोरर के नवीनतम बिल्ड में खोल सकते हैं, लेकिन यदि आप स्थानीय रूप से किसी भी प्रश्न को फिर से चलाना चाहते हैं, तो आपको एडवेंचरवर्क्स2014 (जोनाथन केहैयस से विस्तारित स्क्रिप्ट के साथ) और/या नए वाइड वर्ल्ड इंपोर्टर्स नमूना डेटाबेस की आवश्यकता होगी।
प्र:तो आज जो कुछ दिखाया जा रहा है वह नए, एकीकृत, मुफ़्त प्लान एक्सप्लोरर में है? यदि हां, तो आपकी कंपनी का नया राजस्व मॉडल क्या है?ए: मुझे हमेशा आश्चर्य होता है जब मैं ऐसे लोगों से मिलता हूं जो सोचते हैं कि हम केवल प्लान एक्सप्लोरर की पेशकश करते हैं (मैं इन्हें व्यक्तिगत रूप से देखता हूं, और ग्रेग के ब्लॉग पोस्ट पर भी इसी तरह की कई टिप्पणियां थीं)। हमारी असली रोटी और मक्खन हमारे निगरानी मंच में है, और हम उम्मीद कर रहे हैं कि प्लान एक्सप्लोरर के साथ आपका सकारात्मक अनुभव आपको हमारे अन्य समाधानों को भी आजमाने के लिए प्रेरित करेगा।
प्र:हम अभी भी SQL Server 2008 का उपयोग कर रहे हैं। क्या PE बनाम SSMS का उपयोग करने के कोई लाभ हैं?ए: हां, जबकि आप कुछ कार्यक्षमता (जैसे लाइव क्वेरी प्रोफाइल) से चूक जाएंगे, एसएसएमएस की तुलना में आपके लिए बहुत अधिक जानकारी उपलब्ध है, और हम विशिष्ट मुद्दों को और अधिक खोजने योग्य बनाने के लिए अपने रास्ते से बाहर जाते हैं।
प्रश्न:क्या लाइव क्वेरी प्रोफ़ाइल SQL सर्वर 2014 के लिए काम करेगी?ए: हाँ, जब तक सर्विस पैक 1 लागू किया जाता है, जब तक यह सुविधा SQL Server 2014 SP1 में जोड़े गए DMV पर निर्भर करती है।
प्रश्न:SQL सर्वर 2012 के संबंध में क्या सीमाएँ हैं? क्या मैं इस टूल का बिल्कुल भी उपयोग कर सकता हूं?ए: बिल्कुल। वेबिनार के दौरान मैंने SQL सर्वर 2012 और उससे कम के बारे में जो सीमाएँ लाईं, वह यह है कि वे लाइव क्वेरी प्रोफ़ाइल डेटा को कैप्चर करने में असमर्थ हैं।
प्र:क्या डेटा केवल SQL सर्वर 2014 और उच्चतर के लिए एकत्र किया गया है? क्या होगा यदि SQL सर्वर 2014 स्थापित है लेकिन संगतता 2012 पर सेट है?ए: हाँ, लाइव क्वेरी प्रोफ़ाइल (और संसाधन चार्ट) SQL Server 2014 (कम से कम SP1 के साथ), SQL Server 2016, और Azure SQL डेटाबेस में काम करती है। यह संगतता स्तर से अप्रभावित है।
प्र:प्रतीक्षा आंकड़ों की जानकारी वापस पाने के लिए SQL सर्वर के किस संस्करण की आवश्यकता है?
ए: प्रतीक्षा आँकड़े संग्रह एक विस्तारित ईवेंट सत्र पर निर्भर करता है, इसलिए आपको SQL Server 2008 या उच्चतर के विरुद्ध चलने की आवश्यकता है, और एक उपयोगकर्ता के संदर्भ में निष्पादित करें या एक विस्तारित ईवेंट सत्र बनाने और छोड़ने के लिए पर्याप्त अनुमतियों के साथ लॉगिन करें (CONTROL SERVER
SQL Server 2008 और 2008 R2 में, और ALTER ANY EVENT SESSION
SQL सर्वर 2012 और इसके बाद के संस्करण में)।
ए: इन दो प्रश्नों पर कई भिन्नताएं थीं, और इसकी आवाज़ से, लोग वेबिनार के दौरान सक्रिय रूप से नए संस्करण के साथ खेल रहे थे, और न तो इंडेक्स विश्लेषण डेटा या लाइव क्वेरी प्रोफ़ाइल डेटा देख रहे थे। यदि आपके पास SSMS या प्लान एक्सप्लोरर के पुराने संस्करण से कैप्चर की गई कोई मौजूदा योजना है, तो प्रदर्शित करने के लिए कोई जानकारी नहीं होगी।
सूचकांक विश्लेषण collect एकत्र करने के लिए डेटा, आपको एक अनुमानित या वास्तविक योजना तैयार करनी होगी प्लान एक्सप्लोरर के भीतर से। कॉलम और इंडेक्स ग्रिड देखने के लिए, आपको इंडेक्स एनालिसिस टैब के शीर्ष पर ड्रॉपडाउन में एक चयनित ऑपरेशन चुनना होगा।
लाइव क्वेरी प्रोफ़ाइल एकत्र करने के लिए डेटा, आपको एक वास्तविक योजना तैयार करनी होगी प्लान एक्सप्लोरर के भीतर से, और 2014 SP1 या बेहतर के विरुद्ध चल रहा हो। आपको यह भी सुनिश्चित करना होगा कि आपने "लाइव क्वेरी प्रोफाइल के साथ" विकल्प चुना है (दाईं ओर छवि देखें), और चार्ट के रेंडर होने से पहले क्वेरी के निष्पादन के समाप्त होने की प्रतीक्षा करें। भविष्य के संस्करण में, चार्ट वास्तविक समय में प्रस्तुत होंगे, लेकिन इस रिलीज़ में हम सभी डेटा एकत्र होने के बाद ऐसा करते हैं।
प्रश्न:क्या SQL Server 2014 SP2 में क्लोन किए गए डेटाबेस के विरुद्ध लाइव क्वेरी प्रोफ़ाइल कार्य करता है?ए: हां, यह काम करेगा, हालांकि यह अधिक जानकारी प्रदान नहीं करेगा क्योंकि एक क्लोन डेटाबेस खाली है - आपको योजना में सही अनुमान दिखाई देंगे, लेकिन वास्तविक सभी 0 होंगे, और इसलिए रनटाइम मेट्रिक्स किसी भी यथार्थवादी का प्रतिनिधित्व नहीं करेंगे या सार्थक अड़चनें। जब तक आप वैकल्पिक डेटा के साथ क्लोन को पॉप्युलेट नहीं कर रहे हैं, जैसा कि एरिन स्टेलेटो ने पहले की पोस्ट में प्रचारित किया था। यह भी ध्यान दें कि यदि आप चाहते हैं कि क्वेरी योजना वास्तविक उत्पादन डेटा आकार को दर्शाए, तो आप यह सुनिश्चित करना चाहेंगे कि सभी प्रकार के ऑटो-आंकड़े बंद हैं, अन्यथा जैसे ही आप क्वेरी चलाते हैं, वे अपडेट हो जाएंगे, और फिर सभी अनुमान 0 होंगे।पी> प्र:क्या प्लान एक्सप्लोरर का नया संस्करण SQL सर्वर 2016 के साथ काम करता है?
ए: हां। हम सभी नए SQL सर्वर 2016 योजना ऑपरेटरों और अन्य शोप्लान परिवर्तनों का समर्थन करते हैं (मेरी पोस्ट देखें, "SQL सर्वर 2016 के लिए योजना एक्सप्लोरर समर्थन"), और ऐड-इन SSMS के नवीनतम संस्करण के साथ भी काम करता है (मेरी पोस्ट देखें, "एसएसएमएस 2016 के लिए प्लान एक्सप्लोरर ऐड-इन सपोर्ट की घोषणा")।
प्रश्न:तो SSMS में एक वास्तविक निष्पादन योजना को भी अनुमानित . के साथ लेबल किया जाता है लागत?ए: हाँ यह सही है। जब आप लाइव क्वेरी प्रोफ़ाइल डेटा कैप्चर करते हैं, तो हम सभी ऑपरेटरों के लिए लागत प्रतिशत बदल सकते हैं, क्योंकि हम सटीकता की एक महत्वपूर्ण डिग्री के साथ जानते हैं कि प्रत्येक ऑपरेशन ने कितना वास्तविक कार्य किया (क्वेरी को सीमा से अधिक समय तक चलने की आवश्यकता है)। यह विशेष रूप से उपयोगी हो सकता है यदि आप I/O समस्या का निवारण कर रहे हैं, क्योंकि अनुमान कभी भी I/O बाधाओं को ध्यान में नहीं रखते हैं। मूल अनुमानों के माध्यम से निम्नलिखित ग्राफिक चक्र (हम आपको हमेशा दिखा सकते हैं कि एसएसएमएस ने आपको क्या बताया होगा), पुन:लागत के बाद वास्तविक, और पुन:लागत के बाद वास्तविक और लागत को "I/O द्वारा" और लाइन चौड़ाई को बदलने के लिए "डेटा आकार के अनुसार":
प्रश्न:मैं प्लान एक्सप्लोरर में एसएसएमएस द्वारा निर्मित अपनी योजना खोलता था, लेकिन हारून ने अभी जो दिखाया, क्या मुझे सही ढंग से समझ में आया कि मुझे प्लान एक्सप्लोरर से अपने प्रश्नों (ट्यूनिंग के दौरान) चलाना चाहिए?
ए: मैंने वेबिनार में इस प्रश्न को संबोधित किया, लेकिन स्पष्ट होने के लिए, मुझे लगता है कि एक प्रश्न के विकास में दो चरण हैं:(1) सही परिणाम सुनिश्चित करना, और (2) प्रदर्शन अनुकूलन। मेरा दृढ़ विश्वास है कि वर्तमान में आपको (1) के लिए SSMS और (2) के लिए प्लान एक्सप्लोरर का उपयोग करना चाहिए। मैंने लंबे समय से प्रचार किया है कि एक बार जब लोग सुनिश्चित हो जाएं कि उनके पास सही परिणाम हैं, तो उन्हें वास्तविक उत्पन्न करके ट्यून करना चाहिए प्लान एक्सप्लोरर के भीतर से निष्पादन योजनाएं, क्योंकि हम आपके लिए बहुत अधिक रनटाइम जानकारी एकत्र करते हैं। यह रनटाइम जानकारी विशेष रूप से सहायक होती है यदि आप अपनी योजनाओं को हमारी प्रश्नोत्तर साइट पर साझा करते हैं, क्योंकि यह सभी मीट्रिक और संभावित बाधाओं को और अधिक स्पष्ट करता है।
प्रश्न:ऑपरेटर के नीचे कितने प्रतिशत हैं... उदाहरण के लिए कि फ़ंक्शन से 2,885% नीचे?ए: वह प्रतिशत लागत नहीं है, बल्कि अनुमान की तुलना में वास्तव में संसाधित की गई पंक्तियों का% है। इस मामले में, SQL सर्वर ने अनुमान लगाया कि फ़ंक्शन 10,000 पंक्तियाँ लौटाएगा, लेकिन रनटाइम पर यह 300,000 के करीब लौटा! यदि आप केवल उस % संख्या पर होवर करते हैं, तो आप एक टूलटिप देख सकते हैं, और आप ऑपरेटर के लिए टूलटिप में, या अन्य ग्रिड जैसे टॉप ऑपरेशंस में पंक्ति गणना अनुमान अंतर देख सकते हैं (फ़ंक्शन की तुलना में अब पंक्तियों की एक अलग संख्या देता है डेमो के दौरान):
प्र:क्या आप योजना के लिए अधिक अचल संपत्ति रखने के लिए रीप्ले भाग को छोटा या छुपा सकते हैं?
ए: हाँ, हमारे सभी पैनल समायोज्य हैं; कई में पुश-पिन होता है जो स्थिर और ऑटो-छिपाने के बीच टॉगल करता है, अधिकांश पैनलों को चारों ओर खींचा जा सकता है (जैसे विजुअल स्टूडियो, एसएसएमएस, आदि), और विशेष रूप से रीप्ले पैनल में शीर्ष केंद्र पर एक छोटा तीर होता है जो आपको अनुमति देता है जल्दी से दिखाने/छिपाने के लिए:
प्र:क्या आप सीधे योजना से कोड के अपमानजनक खंड को देख सकते हैं?
ए: मुझे यकीन नहीं है कि मैं प्रश्न की सही व्याख्या कर रहा हूं, लेकिन हमारे सभी पैनल संदर्भ संवेदनशील हैं, और वर्तमान में जांच की जा रही योजना का विवरण स्टेटमेंट ग्रिड और टेक्स्ट डेटा पैनल दोनों में दिखाया गया है:
यदि स्टेटमेंट टेक्स्ट लंबाई के कारण पूरी तरह से दिखाई नहीं देता है, तो आप हमेशा उस सेल पर राइट-क्लिक कर सकते हैं और कॉपी स्टेटमेंट को कमांड टेक्स्ट कॉपी में चुन सकते हैं, और फिर उस टैब पर स्विच कर सकते हैं। या, यदि आप कमांड टेक्स्ट टैब की वर्तमान सामग्री को अधिलेखित नहीं करना चाहते हैं, तो कॉपी> सेल चुनें और एक नए सत्र, एसएसएमएस, या किसी अन्य संपादक में पेस्ट करें।
प्र:अगर मैं गलती से 1 घंटे की क्वेरी शुरू कर दूं तो मैं "वास्तविक योजना प्राप्त करें" को कैसे रोक सकता हूं?ए: यदि कोई क्वेरी वर्तमान में चल रही है, तो स्थिति पट्टी पर एक स्टॉप बटन है, नीचे बाईं ओर:
प्र:क्या पहले किसी अनुक्रमणिका को छोड़ने और नया बनाने के बजाय DROP_EXISTING =ON का उपयोग करना बेहतर नहीं होगा?
ए: DROP_EXISTING और ONLINE जैसे विकल्पों सहित, भविष्य में हमारी निश्चित रूप से इंडेक्स स्क्रिप्टिंग को और अधिक मजबूत बनाने की योजना है।
प्र:क्या यह SentryOne से जुड़ा है?ए: प्लान एक्सप्लोरर की सभी कार्यक्षमता सेंट्रीऑन क्लाइंट में भी उपलब्ध है। यदि आपके पास क्लाइंट है तो आपको तकनीकी रूप से प्लान एक्सप्लोरर को स्थापित करने की आवश्यकता नहीं है, सिवाय इसके कि अपडेट को एक अलग शेड्यूल पर धकेला जाता है, इसलिए कई मामलों में दोनों को स्थापित करना समझ में आता है।
ध्यान रखें कि निगरानी गतिविधियों के दौरान हम आपके लिए जो योजनाएँ एकत्र करते हैं, वे अनुमानित योजनाएँ होती हैं, क्योंकि सर्वर पर चल रहे सभी प्रश्नों के लिए वास्तविक योजनाएँ एकत्र करने की उच्च लागत होती है। इसका अर्थ यह है कि यदि आप क्लाइंट में एकत्रित योजना के बारे में गहराई से जानकारी देते हैं, तो इसमें अनुक्रमणिका विश्लेषण और लाइव क्वेरी प्रोफ़ाइल डेटा जैसी अतिरिक्त जानकारी नहीं होगी। आप उस अतिरिक्त रनटाइम डेटा को प्राप्त करने के लिए, अंतःक्रियात्मक रूप से क्वेरी को कभी भी फिर से चला सकते हैं।
प्र:इन नई सुविधाओं का प्रदर्शन ओवरहेड क्या है?ए: यदि आप प्रबंधन स्टूडियो से समान क्वेरी चलाते हैं और समान रनटाइम डेटा एकत्र करते हैं (जैसे SHOWPLAN, STATISTICS TIME, और STATISTICS IO चालू है) तो हमारे द्वारा एकत्र की जाने वाली अधिकांश जानकारी अधिक महंगी नहीं है। हालांकि, इसमें से अधिकांश की भरपाई परिणामों को छोड़ने के हमारे डिफ़ॉल्ट व्यवहार से होती है, इसलिए हम अपने एप्लिकेशन को परिणाम प्रसारित करने के प्रयास के साथ सर्वर पर बोझ नहीं डालते हैं।
बहुत जटिल स्कीमा और बहुत सारे अनुक्रमित वाले डेटाबेस के खिलाफ चलने वाली अत्यंत जटिल योजनाओं के लिए, सूचकांक और आँकड़े संग्रह कम कुशल हो सकते हैं, लेकिन इससे मौजूदा कार्यभार पर कोई ध्यान देने योग्य प्रभाव होने की संभावना नहीं होगी। यह पंक्तियों . की संख्या से प्रभावित नहीं होगा एक तालिका में, जिसका उल्लेख इस प्रश्न के एक रूपांतर में किया गया था।
वास्तव में लंबे समय तक चलने वाले या संसाधन-गहन प्रश्नों के लिए, मेरी सबसे बड़ी चिंता हमारा लाइव क्वेरी प्रोफ़ाइल संग्रह होगा। हमारे पास दो प्राथमिकताएं हैं जो इसमें मदद कर सकती हैं:क्या डिफ़ॉल्ट रूप से सभी वास्तविक योजना निर्माण के साथ लाइव क्वेरी प्रोफाइल शामिल करना है, और डीएमवी से डेटा एकत्र करने के लिए कौन सा अंतराल है। जबकि मुझे अभी भी लगता है कि इस संग्रह का ऊपरी भाग कभी भी क्वेरी के ऊपरी भाग के पास नहीं आना चाहिए, आप संग्रह को कम आक्रामक बनाने के लिए इन सेटिंग्स को बदल सकते हैं।
उस सभी ने कहा, इस अस्वीकरण के साथ कि सब कुछ मॉडरेशन में किया जाना चाहिए, मैंने डेटा एकत्र करने के ऊपरी हिस्से से संबंधित कोई भी समस्या नहीं देखी है, और उत्पादन उदाहरण के खिलाफ पूर्ण कार्यक्षमता का उपयोग करने में संकोच नहीं होगा।
प्र:फ़िल्टर किए गए इंडेक्स बनाने में मदद करने के लिए क्या वहां कुछ है?ए: वर्तमान में हमारे पास ऐसी कोई कार्यक्षमता नहीं है जो फ़िल्टर किए गए अनुक्रमणिका की अनुशंसा करती हो, लेकिन यह निश्चित रूप से हमारे रडार पर है।
प्र:क्वेरी प्लान जोड़ने की कोई योजना प्लान एक्सप्लोरर के साथ फीचर की तुलना करती है?ए: हाँ, यह निश्चित रूप से हमारे रोडमैप पर SSMS में इस कार्यक्षमता को पेश किए जाने से बहुत पहले से है। :-) हम अपना समय लेने जा रहे हैं और एक फीचर सेट तैयार करेंगे जिसकी उम्मीद आप हमसे उम्मीद करते हैं।
प्र:क्या आप पैकेज के प्रदर्शन का पता लगाने के लिए SSIS पैकेज के साथ उपयोग कर सकते हैं?ए: मुझे लगता है कि आप कर सकते हैं, अगर आप किसी सर्वर के खिलाफ टी-एसक्यूएल के माध्यम से पैकेज या नौकरी का आह्वान करते हैं (प्लान एक्सप्लोरर में एसएसआईएस पैकेज जैसी चीजों को सीधे लॉन्च करने की क्षमता नहीं है)। लेकिन एप्लिकेशन केवल प्रदर्शन पहलुओं को दिखाएगा जो SQL सर्वर के माध्यम से दिखाई देते हैं - यदि SSIS पैकेज के भीतर अक्षमताएं हैं जो SQL सर्वर के खिलाफ निष्पादन से संबंधित नहीं हैं (जैसे, एक स्क्रिप्ट कार्य में एक अनंत लूप), हम कर रहे हैं हम उन्हें लेने में सक्षम नहीं होंगे, क्योंकि हमारे पास कोई दृश्यता नहीं है और हम कोई कोड विश्लेषण नहीं कर रहे हैं।
प्र:क्या आप शीघ्रता से दिखा सकते हैं कि गतिरोध विश्लेषण सुविधा का उपयोग कैसे किया जाता है?ए: मैं वेबिनार के दौरान इस प्रश्न से चूक गया, लेकिन मैं अपने डेमो किट में इस कार्यक्षमता के बारे में बात करता हूं, जोनाथन केहैयस ने इसके बारे में यहां ब्लॉग किया है, स्टीव राइट के पास YouTube पर इसके बारे में एक वीडियो है, और पीई उपयोगकर्ता गाइड में आधिकारिक दस्तावेज की समीक्षा की जा सकती है।
प्रश्न:क्या इसे प्रोफाइलर की तरह इस्तेमाल किया जा सकता है? क्या मैं पूरे कार्यभार का विश्लेषण कर सकता हूँ?ए: प्लान एक्सप्लोरर को व्यक्तिगत प्रश्नों और उनकी निष्पादन योजनाओं का विश्लेषण करने में मदद करने के लिए डिज़ाइन किया गया है। हमारे पास व्यापक दायरे वाले प्रयासों के लिए एक पूर्ण विशेषताओं वाला निगरानी मंच है, और कई तृतीय पक्ष कार्यभार विश्लेषण उपकरण भी उपलब्ध हैं।
प्र:मैं क्वेरी ट्यूनिंग के लिए बहुत नया हूं - क्या आप गहरी समझ के लिए टूल और लेख सुझा सकते हैं?ए: क्वेरी ट्यूनिंग में बेहतर होने के लिए बहुत सारे संसाधन हैं:
- इट्ज़िक बेन-गण, ग्रांट फ्रिचे, या बेंजामिन नेवारेज़ की कोई भी टी-एसक्यूएल पुस्तक;
- पॉल व्हाइट या रॉब फ़ार्ले की कोई ब्लॉग पोस्ट;
- जवाब यहां answer.sqlperformance.com पर या dba.stackexchange.com पर;
- YouTube पर क्वेरी ट्यूनिंग वीडियो;
- डेमो किट (एक नए संस्करण के साथ जल्द ही आ रहा है!); और,
- अभ्यास . गंभीरता से। आप अपनी इच्छानुसार सभी पुस्तकें और लेख पढ़ सकते हैं, लेकिन व्यावहारिक, व्यावहारिक कार्य समस्या निवारण और वास्तविक प्रदर्शन समस्याओं के साथ समस्याग्रस्त प्रश्नों में सुधार के बिना, विशेषज्ञ बनना कठिन होगा। आईएमएचओ.
सारांश
वेबिनार में भाग लेने के लिए धन्यवाद, और सभी महान प्रश्नों के लिए बहुत-बहुत धन्यवाद। मुझे खेद है कि मैं उन सभी को संबोधित करने में सक्षम नहीं था, लेकिन मुझे आशा है कि यह फिर भी मददगार था। यदि आपका कोई प्रश्न है जिसका मैंने ऊपर समाधान नहीं किया है, तो कृपया बेझिझक मुझसे सीधे [email protected] पर पूछें।