SQL में प्रदर्शन ट्यूनिंग
एसक्यूएल प्रदर्शन ट्यूनिंगयह एक मैराथन है न कि स्प्रिंट। लगातार दीर्घकालिक ट्यूनिंग से प्रदर्शन में गिरावट को रोका जा सकता है। जैसे ही प्रदर्शन पिछड़ने लगेगा, आपके उपयोगकर्ता नोटिस करने लगेंगे।
प्रदर्शन ट्यूनिंग आपको असंतुष्ट ग्राहकों की त्रासदी से बचने और बेहतर उपयोगकर्ता अनुभव प्रदान करने में मदद करती है। इस लेख में, हम क्या देखने जा रहे हैं एसक्यूएल प्रदर्शन ट्यूनिंग है, और अपने सर्वर के प्रदर्शन को बेहतर बनाने का प्रयास करते समय आपको कुछ क्षेत्रों के बारे में पता होना चाहिए जिनमें शामिल हैं:
- प्रदर्शन की निगरानी के लिए SQL मॉनिटरिंग टूल का उपयोग करना
- सूचकांकों में सुधार
- SQL सर्वर गतिरोध
- क्वेरी रनटाइम कम करना
SQL प्रदर्शन ट्यूनिंग क्या है?
SQL प्रदर्शन ट्यूनिंग की प्रक्रिया हैSQL कथनों के प्रदर्शन में सुधार. आप यह सुनिश्चित करना चाहते हैं कि SQL कथन यथासंभव तेज़ चलें। तेज़ और कुशल स्टेटमेंट कम हार्डवेयर संसाधन लेते हैं और बेहतर प्रदर्शन करते हैं। इसके विपरीत, एक अअनुकूलित अकुशल कथन को पूरा होने और अधिक कंप्यूटिंग शक्ति लेने में अधिक समय लगेगा।
कंप्यूटिंग शक्ति के अकुशल उपयोग का मतलब है कि डेटाबेस को उपयोगकर्ता के अनुरोधों का जवाब देने में अधिक समय लगेगा। व्यवहार में, इसका मतलब है कि जब भी कोई उपयोगकर्ता इंटरफ़ेस के साथ इंटरैक्ट करता है तो प्रतिक्रिया समय अधिक होगा क्योंकि डेटाबेस आवश्यक जानकारी ढूंढने का प्रयास करता है। नेटवर्क प्रशासक और डेवलपर डेटाबेस प्रदर्शन को बेहतर बनाने और प्रीमियम उपयोगकर्ता अनुभव बनाए रखने के लिए नियमित रूप से प्रदर्शन ट्यूनिंग का उपयोग करते हैं।
खराब SQL सर्वर प्रदर्शन का क्या कारण है?
SQL सर्वर के धीमी गति से चलने के कई कारण हो सकते हैं। धीमी क्वेरी से लेकर प्रदर्शन बाधाओं, वर्चुअलाइज्ड संसाधन विवाद और हार्डवेयर सीमाओं तक के कारक खराब प्रदर्शन में योगदान करते हैं। हालाँकि, संभावित दोषियों की बड़ी सूची के कारण धीमे सर्वर का मूल कारण खोजना जटिल है।
अधिकांश समय, खराब प्रदर्शन खराब तरीके से लिखी गई क्वेरी और अनुक्रमण के कारण हार्डवेयर सीमाओं के बजाय संसाधनों का अकुशल उपयोग से संबंधित होता है। दुर्भाग्य से, समय और प्रयास के महत्वपूर्ण निवेश के बिना यह पता लगाना मुश्किल हो सकता है कि समस्या का कारण क्या है।
SQL के प्रदर्शन संबंधी समस्याओं की खोज की निदान प्रक्रिया को तेज़ करने के लिए प्रदर्शन निगरानी उपकरण का उपयोग करने की सलाह दी जाती है। एक डेटाबेस मॉनिटर आपको खराब प्रदर्शन के कारण को गहराई से देखने और अपने ग्राहकों को बेहतर अंतिम-उपयोगकर्ता अनुभव प्रदान करने में सक्षम करेगा।
प्रदर्शन की निगरानी करने और SQL बाधाओं की पहचान करने के लिए SQL प्रदर्शन मॉनिटर का उपयोग करें
सोलरविंड्स डेटाबेस प्रदर्शन विश्लेषक (निःशुल्क परीक्षण)
SQL प्रदर्शन को प्रबंधित करने के लिए डेटाबेस मॉनिटरिंग उपकरण आवश्यक हैं क्योंकि वे आपको अक्षमता के मूल कारण को इंगित करने की अनुमति देते हैं। जैसे निगरानी उपकरणसोलरविंड्स डेटाबेस प्रदर्शन विश्लेषकSQL बाधाओं जैसे सामान्य मुद्दों की पहचान करने और समस्या के कारण को उजागर करने के लिए आदर्श हैं।
सोलरविंड्स डेटाबेस परफॉर्मेंस एनालाइजर का 14 दिन का निःशुल्क परीक्षण शुरू
SQL बाधाएँ डेटाबेस प्रबंधित करते समय आपके सामने आने वाली सबसे व्यापक समस्याओं में से एक हैं। जो बात रुकावटों को पेचीदा बनाती है वह यह है कि उन्हें प्रकट करने के कई तरीके होते हैं। चार प्रकार की बाधाएँ हैं जो सर्वर के प्रदर्शन को प्रभावित कर सकती हैं:याद,डिस्क,CPU, और यहनेटवर्कअपने आप।
यदि आपके पास एक ही समय में कई बाधाएँ सक्रिय हैं तो बाधाओं को प्रबंधित करना और भी कठिन हो जाता है। उदाहरण के लिए, यदि आपके पास सीमित डिस्क संसाधन और मेमोरी है तो आपको उच्चतर CPU उपयोग भी मिलने की संभावना है।
सोलरविंड्स डेटाबेस प्रदर्शन विश्लेषक आपको सक्रिय बाधाओं के मूल कारण की पहचान करने में मदद करता है। मंच काएसक्यूएल प्रदर्शन विश्लेषकपर डेटा का उपयोग करता हैप्रतीक्षा प्रकार,एसक्यूएल कथन,गतिविधि, और वास्तविक समय के प्रदर्शन की निगरानी के लिए और भी बहुत कुछ। आप उन प्रतीक्षा प्रकारों/घटनाओं को भी देख सकते हैं जो बाधाओं के पीछे हैं।
सामान्य प्रदर्शन ट्यूनिंग के लिए, आपके पास बयानों को ट्यून करने में मदद के लिए विभिन्न प्रकार के मार्गदर्शन भी हैं। उदाहरण के लिए, एक 'हैसबसे खराब प्रदर्शन करने वाले SQL कथन'देखना। इस जानकारी को हाथ में लेकर आप अपनी प्रदर्शन ट्यूनिंग रणनीति में ठोस बदलाव करना शुरू कर सकते हैं और अपने अंतिम-उपयोगकर्ताओं के अनुभव को बेहतर बना सकते हैं।
क्वेरी रनटाइम को कम करने के लिए ट्यूनिंग
जैसा कि ऊपर चर्चा की गई है,क्वेरी चलाने का समयSQL प्रदर्शन को बनाए रखने का प्रयास करते समय यह एक महत्वपूर्ण विचार है, क्वेरी जितनी अधिक समय तक चलेगी हार्डवेयर को अनुरोध को संसाधित करने के लिए उतने ही अधिक संसाधनों का उपयोग करना होगा। क्वेरी रन टाइम कम करने से आप अपने हार्डवेयर से अधिक लाभ प्राप्त कर सकेंगे, और बेहतर डेटाबेस प्रदर्शन का समर्थन कर सकेंगे।
तीन मुख्य कारक हैं जो क्वेरी रन टाइम को बढ़ाते हैं:मेज़आकार,कार्यभार संभाला, औरएकत्रित. यदि किसी क्वेरी को किसी तालिका के साथ इंटरैक्ट करने की आवश्यकता है जिसमें बहुत अधिक पंक्तियाँ हैं तो सॉफ़्टवेयर को उस क्वेरी को संसाधित करने के लिए अधिक मेहनत करने की आवश्यकता होगी। इसी तरह, यदि आपकी क्वेरीकार्यभार संभालाएक साथ कई तालिकाएँ होने से प्रदर्शन प्रभावित होगा। इसी प्रकार परिणाम उत्पन्न करने के लिए एकत्रीकरण का उपयोग करने वाली क्वेरीज़ को भी अधिक संसाधनों की आवश्यकता होती है।
यह ध्यान रखना महत्वपूर्ण है कि यदि एक ही समय में कई अन्य उपयोगकर्ता क्वेरी चला रहे हों तो क्वेरी का रनटाइम भी बढ़ाया जा सकता है। प्रत्येक क्वेरी हार्डवेयर संसाधन लेती है। परिणामस्वरूप, डेटाबेस जितने अधिक प्रश्नों को संसाधित करने का प्रयास करेगा, रनटाइम उतना ही धीमा होगा।
यदि आप प्रदर्शन में सुधार करना चाहते हैं और क्वेरी रन टाइम में कटौती करना चाहते हैं तो तालिका का आकार कम करना सबसे सरल चीजों में से एक है जो आप कर सकते हैं। इसी तरह, समय-सीमा पूछते समय विंडो को यथासंभव संकीर्ण रखें। उदाहरण के लिए, यदि आपको समय की अवधि में डेटाबेस डेटा को मापने की आवश्यकता है तो 24 घंटे की अवधि जैसी संक्षिप्त समय सीमा चुनें ताकि हार्डवेयर को अधिक डेटा संसाधित न करना पड़े।
एक और चीज़ जो आप कर सकते हैं वह है अपनी मेमोरी को अपग्रेड करना। यदि आपके पास बड़े डेटाबेस को प्रबंधित करने के लिए कंप्यूटिंग संसाधन उपलब्ध नहीं हैं, तो ट्यूनिंग अच्छा प्रदर्शन देने के लिए पर्याप्त नहीं होगी। मेमोरी को अपग्रेड करने से यह सुनिश्चित करने में मदद मिलती है कि आपके पास अधिक संसाधन उपलब्ध हैं।
संबंधित पोस्ट: सर्वश्रेष्ठ एसक्यूएल क्वेरी बिल्डर्स
SQL सर्वर गतिरोध
डेडलॉक एक अन्य प्रदर्शन समस्या है जिसे नेटवर्क प्रशासकों और डेवलपर्स को प्रबंधित करना होता है। गतिरोध कहां हैकिसी संसाधन तक पहुंच के लिए दो प्रक्रियाएं प्रतिस्पर्धा कर रही हैं. दोनों प्रक्रियाएँ एक-दूसरे को अवरुद्ध करती हैं इसलिए कोई भी संसाधन तक नहीं पहुँच सकता। दूसरे शब्दों में, गतिरोध एक चक्रीय निर्भरता है जो एप्लिकेशन कोड के कारण होती है।
सर्वर गतिरोध को खत्म करने के लिए, व्यवस्थापक को प्रक्रियाओं में से एक को समाप्त करने की आवश्यकता है। SQL सर्वर में एक हैताला प्रबंधकजो स्वचालित रूप से हर पांच सेकंड में गतिरोधों की खोज करता है।
जब SQL सर्वर किसी गतिरोध का पता लगाता है तो वह लेनदेन को बंद करने का विकल्प चुनता है। किसी एक लेनदेन को बंद करने से गतिरोध दूर हो जाता है ताकि दूसरी प्रक्रिया उस संसाधन तक पहुंच सके जो मूल रूप से अवरुद्ध था।
SQL सर्वर चुनता है कि गतिरोध प्राथमिकता के आधार पर कौन सी प्रक्रिया बंद हो जाएगी। उपयोगकर्ता द्वारा निम्न आदेश से गतिरोध प्राथमिकता निर्धारित की जा सकती है:
गतिरोध_प्राथमिकता कम सेट करें;
चार प्राथमिकता स्तर हैं;कम,सामान्य,उच्च,<संख्यात्मक> . LOW का मान -5 है, NORMAL का मान 0 है, और HIGH का मान 5 है।
SQL सर्वर न्यूनतम गतिरोध प्राथमिकता स्तर के साथ प्रक्रिया को समाप्त कर देता है। इसलिए यदि आपने किसी प्रक्रिया को कम प्राथमिकता देने के लिए LOW कमांड दर्ज किया है और दूसरी प्रक्रिया की प्राथमिकता सामान्य या उच्च है, तो LOW प्राथमिकता प्रक्रिया समाप्त हो जाएगी।
यह ध्यान रखना महत्वपूर्ण है कि गतिरोधों को हल करना गतिरोध प्राथमिकता अनुभागों से कहीं आगे तक जाता है। गतिरोध हल करने के लिए एक अविश्वसनीय रूप से जटिल मुद्दा हो सकता है (विशेषकर यदि आपको डेवलपर की मदद से एप्लिकेशन कोड से गुज़रना पड़े!)।
अनुक्रमणिका में सुधार करें
क्वेरी दक्षता बढ़ाने के लिए इंडेक्स आपके लिए एक उपयोगी उपकरण है। इंडेक्स एक डेटा संरचना है जिसका उपयोग आप डेटाबेस से तेज़ी से जानकारी खींचने के लिए कर सकते हैं। प्रदर्शन को बढ़ावा देने के लिए इंडेक्स का उपयोग करना चाहते हैं: तालिकाओं में बहुत सारे इंडेक्स का उपयोग करें, बार-बार अपडेट होने वाले इंडेक्स से बचें, और उपयोग करेंगैर-संकुलित सूचकांकक्वेरी निष्पादन समय को कम करने के लिए.
इंडेक्स डिज़ाइन की प्रक्रिया में मदद के लिए आप इसका उपयोग कर सकते हैंएसक्यूएल प्रोफाइलरनिम्न स्तर के प्रदर्शन वाले प्रश्नों की पहचान करना।एसक्यूएल प्रोफाइलरआपको बताएगा कि किसी क्वेरी को पूरा करने में पढ़ने और लिखने के कितने ऑपरेशन होते हैं और क्वेरी को पूरा होने में कितना समय लगता है। प्रोफ़ाइलर को किसी दूरस्थ कंप्यूटर पर लोड करें और उन क्वेरीज़ को ढूंढें जिन्हें पूरा होने में लंबा समय लगता है। ये क्वेरीज़ वे होंगी जिन्हें आप रन-टाइम कम होने तक संशोधित करना चाहते हैं।
वैकल्पिक रूप से, आप इसका उपयोग कर सकते हैंइंडेक्स ट्यूनिंग विज़ार्डआपके उपयोग के लिए अनुक्रमणिका की अनुशंसा करना।ट्यूनिंग विज़ार्डSQL के लिए एक सॉफ़्टवेयर विज़ार्ड है जो आप जो हासिल करना चाहते हैं उसके आधार पर आपको अनुशंसाएँ प्रदान करता है। आप प्राप्त आउटपुट डेटा का उपयोग कर सकते हैंएसक्यूएल प्रोफाइलरसप्लाई करने के लिएइंडेक्स ट्यूनिंग विज़ार्डनिगरानी के लिए जानकारी के साथ. प्रश्नों के निष्पादन समय की निगरानी करें और अकुशल संचालन पर नज़र रखें।
प्रतिदिन SQL ट्यूनिंग का एक स्पर्श खराब प्रदर्शन को दूर रखता है
उपयोगकर्ता की प्रदर्शन अपेक्षाएँ पहले से कहीं अधिक अक्षम्य हैं। उपयोगकर्ताओं को पहाड़ों पर भेजने में केवल थोड़ी देरी होती है।पर अग्रिम रूपविलंबता को खत्म करने और आधुनिक उपयोगकर्ताओं की मांग के अनुसार प्रतिक्रियाशील अनुभव प्रदान करने के लिए SQL डेटाबेस को ट्यून करना आवश्यक है।
जबकि SQL प्रदर्शन की निगरानी एक सतत प्रक्रिया है, इसे शुरू करने का सबसे अच्छा तरीका इसका उपयोग करना हैडेटाबेस निगरानी मंच. डेटाबेस मॉनिटरिंग सॉफ्टवेयर अधिक दृश्यता प्रदान करेगा और आपको सुधार के लिए विशिष्ट मुद्दों की दिशा बताएगा।
तब से, क्वेरी प्रदर्शन को बेहतर बनाने के 101 तरीके हैं। यदि आप SQL में नए हैं तो निराश न होने का प्रयास करें और एक समय में एक छोटा सा सुधार करने पर ध्यान केंद्रित करें। यदि आप अपना आत्मविश्वास बढ़ाने के लिए टेबल के आकार को कम करने जैसी बुनियादी बातों से शुरुआत करते हैं तो आप आगे चलकर और अधिक जटिल कदम उठाना शुरू कर सकते हैं।
एसक्यूएल प्रदर्शन ट्यूनिंग अक्सर पूछे जाने वाले प्रश्न
हम SQL में प्रदर्शन ट्यूनिंग कैसे कर सकते हैं?
SQL प्रदर्शन ट्यूनिंग के लिए यहां चार युक्तियाँ दी गई हैं:
- प्रदर्शन की निगरानी के लिए SQL मॉनिटरिंग टूल का उपयोग करें
- अनुक्रमणिका में सुधार करें
- संसाधन गतिरोध रोकें
- क्वेरी निष्पादन समय कम करें
मैं अपनी SQL क्वेरी को तेजी से कैसे चलाऊं?
SQL क्वेरीज़ को तेज़ बनाने के लिए इन चार चरणों को आज़माएँ:
- सर्वर मेमोरी का विस्तार करें
- विभाजन तालिकाएँ
- बाहरी जोड़ हटाएँ
- सबसे पहले अधिकांश रिकॉर्ड्स को फ़िल्टर करने के लिए जोड़ों को पुनर्व्यवस्थित करें
- सुनिश्चित करें कि यह हिट इंडेक्स से जुड़ता है
- कॉलम सूची में वाइल्डकार्ड हटाएँ
डेटाबेस प्रदर्शन ट्यूनिंग क्या है?
डेटाबेस प्रदर्शन ट्यूनिंग में इंडेक्स, व्यू और टेबल सामान्यीकरण की जांच करके डेटाबेस ऑब्जेक्ट में सुधार शामिल है। SQL क्वेरीज़ को इस तरह से लिखा जाना चाहिए जिससे इंडेक्स जैसी डेटाबेस संरचनाओं का इष्टतम उपयोग हो सके।