अपने डेटाबेस पर प्रदर्शन ट्यूनिंग करना सबसे आम और फिर भी सबसे महत्वपूर्ण गतिविधि में से एक है जिसे प्रत्येक डेटाबेस व्यवस्थापक (डीबीए) को निरंतर और नियमित आधार पर करना चाहिए। विशेषज्ञ अनुशंसा करते हैं कि आप नियमित रूप से अनुकूलित प्रदर्शन के लिए डेटाबेस को ठीक करें। फ़ाइन-ट्यूनिंग उपयोगकर्ताओं को अपनी रिपोर्ट और क्वेरी को तेज़ी से चलाने और परिणाम तेज़ी से प्राप्त करने में मदद करता है। यह पोस्ट Oracle® डेटाबेस के समस्या निवारण और ट्यूनिंग के लिए कुछ तकनीकों को साझा करती है।
ट्यूनिंग चरण
शुरू करने के लिए, आपको उस क्षेत्र की पहचान करने की आवश्यकता है जहां समस्या हो रही है। संभावित क्षेत्र जो समस्या को ट्रिगर कर सकते हैं उनमें ऑपरेटिंग सिस्टम, डेटाबेस, मेमोरी की कमी आदि शामिल हैं। एक समस्या क्षेत्र की पहचान करने के बाद, आप अधिकतम लाभ के लिए क्षेत्र को ट्यूनिंग के साथ आगे बढ़ सकते हैं। यह ब्लॉग केवल प्रदर्शन ट्यूनिंग पर केंद्रित है।
Oracle ने DBA को समस्याओं के निदान और प्रदर्शन समस्याओं के निवारण में मदद करने के लिए कुछ उपकरण दिए हैं। इन उपकरणों में स्वचालित डेटाबेस डायग्नोस्टिक मॉनिटर (एडीडीएम) और स्वचालित वर्कलोड रिपोजिटरी (एडब्ल्यूआर) रिपोर्ट शामिल हैं, जिन्हें आप समस्याग्रस्त समय-अवधि के लिए उत्पन्न कर सकते हैं और अपने विश्लेषण में उपयोग कर सकते हैं। तिरछे या ट्यून करने योग्य घटकों को देखने के लिए आपको टूल का उपयोग करना चाहिए।
AWR रिपोर्ट में शीर्ष समयबद्ध ईवेंट
AWR एक उपकरण है जिसके साथ आप एक रिपोर्ट तैयार कर सकते हैं जो एक विशेष उदाहरण द्वारा एक सांख्यिकी रूप में स्मृति उपयोग को सारांशित करता है। AWR रिपोर्ट जनरेट करने के लिए, निम्न फ़ाइल को sqlplus प्रॉम्प्ट में चलाएँ:
@$ORACLE_HOME/rdbms/admin/awrrpt.sql
यह एक पूर्व-संग्रहीत टेम्पलेट का उपयोग करके HTML प्रारूप में एक AWR रिपोर्ट उत्पन्न करता है। AWR रिपोर्ट तैयार करने के बाद, आप जल्दी से शीर्ष समयबद्ध घटनाएँ देख सकते हैं। AWR रिपोर्ट में अनुभाग, जो समस्याग्रस्त क्षेत्र की पहचान करता है, जैसा कि निम्न चित्र में दिखाया गया है:
ADDM ट्यूनिंग सत्र
आम तौर पर, जब किसी समस्या की रिपोर्ट की जाती है, तो डीबीए केवल उस क्षेत्र का समस्या निवारण कर सकता है या उस विशिष्ट समस्या का समाधान कर सकता है। हालांकि, अगर इस मुद्दे को सही ढंग से पहचाना और संबोधित नहीं किया गया है, तो यह भविष्य में बड़ी समस्याएं पैदा कर सकता है। DBAcan को यहां बड़ी तस्वीर याद आती है। डेटाबेस मुद्दों के बारे में डीबीए को एक बड़ा और पूर्ण चित्र प्राप्त करने में मदद करने के लिए, ओरेकल ने डीबीए, एडीडीएम के लिए एक और उपकरण प्रदान किया है। एक एडीडीएम ट्यूनिंग सत्र मैन्युअल ट्यूनिंग सत्र के समान प्रक्रिया का पालन करता है। निम्न छवि एक तुलना दिखाती है:
छवि स्रोत:Oracle 11G प्रदर्शन ट्यूनिंग प्रशिक्षण मैनुअल
SQL का उपयोग करके या Oracle Enterprise Manager (OEM) के माध्यम से ADDM रिपोर्ट पुनर्प्राप्त करें। निम्न छवि नमूना SQL दिखाती है:
खराब SQL और निष्पादन योजनाएँ
AWR या ADDM रिपोर्ट खराब SQL/SQLID के अनुभागों की पहचान करने के बाद, आप उनके बारे में अधिक जानकारी एकत्र करने के लिए DBMS_XPLAN का उपयोग कर सकते हैं। DBMS_XPLAN पैकेज निम्नलिखित तालिका कार्यों की आपूर्ति करता है जिनका उपयोग आप निष्पादन (निष्पादन) योजना को पुनः प्राप्त करने और प्रदर्शित करने के लिए कर सकते हैं:
DISPLAY
DISPLAY_AWR
select plan_table_output from table (DBMS_XPLAN.DISPLAY_AWR('fs22b3fgfh8xc'));
DISPLAY_CURSOR
निम्न छवि EXPLAIN PLAN
. से नमूना आउटपुट दिखाती है कमांड और पहचान करता है कि क्वेरी एक पूर्ण तालिका स्कैन का उपयोग कर रही है या कुछ इंडेक्स का उपयोग करके डेटा को कम कर रही है:
ADDM रिपोर्ट दर्शाती है कि क्या आप कुछ नई अनुक्रमणिका बनाकर कोई प्रदर्शन लाभ प्राप्त कर सकते हैं। आप क्वेरी को ठीक करने के लिए OEM से SQL ट्यूनिंग सलाहकार भी चला सकते हैं और संभवतः बेहतर निष्पादन योजना का उपयोग कर सकते हैं। अधिकांश समय, समस्याग्रस्त SQL के लिए एक बेहतर योजना का उपयोग करने से प्रमुख प्रदर्शन समस्या का समाधान हो जाता है।
SQL ट्यूनिंग सलाहकार
SQL ट्यूनिंग सलाहकार SQL कथनों का विश्लेषण करने और समाधानों का विश्लेषण और सुझाव देने के लिए SQL प्राधिकरण आईडी (SQLID) का उपयोग करके प्रदर्शन अनुशंसाएँ प्राप्त करने में मदद करता है। SQL ट्यूनिंग सलाहकार निम्नलिखित स्रोतों का विश्लेषण करता है:
- शीर्ष गतिविधि:वर्तमान में सक्रिय शीर्ष SQL कथनों का विश्लेषण करता है।
- SQL ट्यूनिंग सेट:आपके द्वारा प्रदान किए जाने वाले SQL कथनों के एक सेट का विश्लेषण करता है।
- ऐतिहासिक SQL (AWR):AWR स्नैपशॉट द्वारा एकत्र किए गए कथनों से SQL कथनों का विश्लेषण करता है।
निम्नलिखित स्क्रीनशॉट कुछ उदाहरण दिखाते हैं:
लंबे समय तक चलने वाले अनुरोध
Oracle eBusiness Suite डेटाबेस में, लंबे समय तक चलने वाले अनुरोधों का मुद्दा ज्यादातर वहीं सामने आता है जहां कुछ समवर्ती अनुरोध चलते रहते हैं। इसे हल करने के लिए, आपको समवर्ती अनुरोधों से जुड़े डेटाबेस सत्र के बारे में अधिक जानकारी एकत्र करने की आवश्यकता है। निम्न छवि इसे एकत्रित करने के चरण दिखाती है
जानकारी:
Oracle डेटाबेस मेमोरी पैरामीटर
AWR रिपोर्ट की समीक्षा करने के बाद, एक DBA आसानी से उस कैश की पहचान कर सकता है जिसे ठीक ट्यूनिंग की आवश्यकता होती है क्योंकि उस कैश के लिए कैश हिट अनुपात अन्य कैश की तुलना में कम होता है। निम्न छवि कुछ शीर्ष डेटाबेस पैरामीटर दिखाती है जिन पर आपको इंस्टेंस-वाइड मेमोरी ट्यूनिंग के लिए विचार करना चाहिए।
छवि स्रोत: https://ora-performance-tuning.blogspot.com/2014/02/automatic-shared-memory-management.html
आम तौर पर देखे जाने वाले इंतज़ार के इवेंट
निम्न तालिका कुछ सामान्य प्रतीक्षा घटनाओं और उनके संभावित कारणों को दर्शाती है:
(
तालिका स्रोत:Oracle प्रदर्शन ट्यूनिंग 11G OCP प्रशिक्षण मैनुअल, अध्याय 20, पृष्ठ 24
शीर्ष 10 ट्यूनिंग समस्याएं
ग्राहकों को आमतौर पर निम्नलिखित शीर्ष 10 ट्यूनिंग समस्याओं का सामना करना पड़ता है:
-
खराब कनेक्शन प्रबंधन: डेवलपर्स एप्लिकेशन में डेटाबेस से कनेक्ट करने के लिए कोड लिखते हैं या डेटाबेस से डेटा लाने के लिए क्वेरी चलाते हैं। डेटा प्राप्त होने के बाद और कुछ और आवश्यक नहीं है, कोड को डेटाबेस से कनेक्शन बंद कर देना चाहिए। हालांकि, ऐसा अक्सर नहीं होता है, जिसके कारण डेटाबेस में निष्क्रिय सत्रों की संख्या बढ़ जाती है। ये सत्र कीमती संसाधनों का उपयोग करते हैं जिनका उपयोग अन्य सक्रिय कनेक्शनों के लिए किया जा सकता था।
-
कर्सर और साझा पूल का गलत उपयोग: एक कर्सर एक डेवलपर के शस्त्रागार में एक उपकरण है जो ज्यादातर अप्रयुक्त रहता है। कर्सर के बिना, ओरेकल को हर बार चलने पर कोड को हार्डपार्स करना पड़ता है। यह बार-बार चलाए जाने वाले SQLqueries के प्रदर्शन को अत्यधिक प्रभावित करता है। एक DBA इंस्टेंस दक्षता प्रतिशत - % को पार्स करने के लिए निष्पादित करके इस समस्या की पहचान कर सकता है। AWR रिपोर्ट अनुभाग।
-
खराब SQL: जिस तरह से एक SQL क्वेरी लिखी जाती है (डेटा लाने के लिए जुड़ने की शर्तों के साथ) उस SQL के निष्पादन के बाद, उसके प्रदर्शन को महत्वपूर्ण रूप से प्रभावित करता है। आपको बड़ी तालिकाओं के लिए पूर्ण तालिका स्कैन से बचना चाहिए। एसक्यूएल तैयार होने के बाद, डेवलपर्स और डीबीए को उस एसक्यूएल पर एक व्याख्या योजना चलानी चाहिए ताकि इसे डेटाबेस में चलाने की लागत को समझ सकें। कर्सर, बाइंडवेरिएबल्स और इंडेक्स का उपयोग करके, आप दक्षता बढ़ा सकते हैं।
-
गैर-मानक आरंभीकरण पैरामीटर का उपयोग: डीबीए को हमेशा केवल मानक या अनुशंसित प्रारंभिक पैरामीटर का उपयोग करना चाहिए। गैर-मानक आरंभीकरण पैरामीटर का उपयोग केवल तभी करें जब वे Oracle सेवा अनुरोध (SR) द्वारा सुझाए गए हों।
-
डेटाबेस I/O गलत हो रहा है: जब डेटाबेस हार्डवेयर का चयन करने वाले DBA को डेटाबेस को कई डिस्क पर वितरित करने का प्रयास करना चाहिए और नेटवर्क टीम को उस गति के बारे में चर्चा में शामिल करना चाहिए जिसके साथ डेटा डेटाबेस सर्वर से अंतिम उपयोगकर्ताओं तक और वापस यात्रा करेगा। एक डीबीए को किसी भी अड़चन या प्रदर्शन के मुद्दों से बचने के लिए नेटवर्क स्विच और राउटर की गति को ध्यान में रखना चाहिए।
-
लॉग सेटअप समस्याओं को फिर से करें: डेटा को रीडो बफर से स्टोर करने के लिए रीडो लॉग की आवश्यकता होती है ताकि ओरेकल किसी भी दुर्घटना के मामले में लेनदेन को फिर से कर सके। यदि फिर से लॉग आकार अपर्याप्त है, तो डेटाबेस में कई स्विच हो सकते हैं जो प्रदर्शन समस्याओं का कारण बनते हैं। यह संग्रह पीढ़ी पर भार भी बढ़ाता है।
-
बफर कैश में डेटा ब्लॉक का क्रमांकन: ऐसा मुक्त सूची समूहों या पूर्ववत खंडों की कमी के कारण होता है। यह स्थिति सक्रिय उपयोगकर्ताओं के एक बड़े आधार के साथ सम्मिलित-भारी डेटाबेस के लिए उत्पन्न होती है, लेकिन कम पूर्ववत खंड होते हैं, जो अंततः प्रदर्शन समस्याओं की ओर ले जाते हैं।
-
पूर्ण तालिका स्कैन: स्पष्टीकरण योजना चलाकर प्रश्नों में पूर्ण तालिका स्कैन की जाँच करें। आम तौर पर, एक क्वेरी जो पूर्ण तालिका स्कैन करती है, खराब SQLdesign को दर्शाती है, जिसे अनुक्रमणिका का उपयोग करके और आवश्यक डेटा को कम करके ठीक किया जा सकता है। कुछ मामलों में, विशेष रूप से छोटी तालिकाओं के मामले में, पूर्ण तालिका स्कैन फायदेमंद हो सकते हैं।
-
पुनरावर्ती SQL: अगर सही तरीके से इस्तेमाल किया जाए तो रिकर्सिव एसक्यूएल डेवलपर्स के लिए एक वरदान हो सकता है, लेकिन यह एक दोधारी तलवार हो सकती है। सही किया, यह आउटपुट को कुशलता से प्रदान करता है। अन्यथा, यह डेटाबेस के प्रदर्शन को अत्यधिक प्रभावित करता है।
-
इन-डिस्क सॉर्टिंग: इन-डिस्क सॉर्टिंग डेटाबेस के लिए एक बहुत महंगा कार्य है। यह खराब SQL डिज़ाइन और खराब अनुकूलन को इंगित करता है। आप इंस्टेंस गतिविधि आँकड़े - सॉर्ट (डिस्क) में समस्या की पहचान कर सकते हैं AWR रिपोर्ट अनुभाग।
निष्कर्ष
जबकि डीबीए को प्रदर्शन ट्यूनिंग के लिए विभिन्न क्षेत्रों पर विचार करना चाहिए, डेटाबेसवर्ल्ड में, प्रदर्शन ट्यूनिंग डेटाबेस और एप्लिकेशन डिज़ाइन चरण से शुरू होता है। डेटाबेस और एप्लिकेशन जो प्रदर्शन ट्यूनिंग परिप्रेक्ष्य को ध्यान में रखते हुए डिज़ाइन किए गए हैं, वे प्रदर्शन ट्यूनिंग विचार के बिना डिज़ाइन किए गए अनुप्रयोगों की तुलना में बहुत अधिक स्केलेबल हैं।
इस ब्लॉग में शामिल किए गए प्रदर्शन ट्यूनिंग बिंदु केवल हिमशैल की नोक हैं। मैं अनुशंसा करता हूं कि साथी डीबीए समग्र रूप से डेटाबेस के प्रदर्शन का ध्यान रखने के लिए विषय पर और अधिक पढ़ते रहें।
कोई टिप्पणी करने या प्रश्न पूछने के लिए प्रतिक्रिया टैब का उपयोग करें।
हमारी डेटाबेस सेवाओं के बारे में अधिक जानें।
रैकस्पेस को Oracle उत्पादों का व्यापक ज्ञान है। इस बारे में अधिक जानें कि हम आपके Oracle निवेश को अधिकतम कैसे कर सकते हैं।