Computer >> कंप्यूटर >  >> प्रोग्रामिंग >> डेटाबेस

Oracle SQL प्रोफ़ाइल और आधार रेखा

यह पोस्ट Oracle® में SQL प्रोफ़ाइल और बेसलाइन के बीच अंतर को हाइलाइट करती है और बताती है कि क्वेरी को ट्यून करते समय यह कैसे काम करता है।

अनुकूलक, प्रोफ़ाइल और आधार रेखा

उच्च स्तर पर, ये तीन तत्व एक साथ निम्न प्रकार से कार्य करते हैं:

  • क्वेरी ऑप्टिमाइज़र क्वेरी निष्पादन के लिए सर्वोत्तम योजना प्राप्त करने के लिए सिस्टम सांख्यिकी, बाइंड वैरिएबल और संकलन जैसी जानकारी का उपयोग करता है। हालांकि, कभी-कभी इनपुट दोष एक उप-इष्टतम योजना की ओर ले जाते हैं।

  • SQL प्रोफ़ाइल में सहायक जानकारी होती है जो इस समस्या को कम करती है। वे इन गलतियों को कम करते हैं और अनुकूलक को सर्वोत्तम योजना चुनने में मदद करते हैं।

  • SQL स्टेटमेंट के लिए SQL प्लान बेसलाइन में स्वीकृत योजनाओं का एक सेट होता है। कथन को पार्स करने के बाद, अनुकूलक स्वीकृत योजनाओं के सेट में से सर्वश्रेष्ठ योजना का चयन करता है। यदि लागत अनुकूलक को एक और अच्छी योजना मिलती है, तो यह योजना के इतिहास में नई योजना को जोड़ता है। हालांकि, अनुकूलक नई योजना का उपयोग तब तक नहीं करता जब तक कि यह सत्यापित नहीं कर लेता कि यह वर्तमान में स्वीकृत योजना से बेहतर प्रदर्शन करेगी।

इसे इस तरह से सोचें:एसक्यूएल प्रोफाइल सबसे अच्छी योजना का चयन करने में मदद करने के लिए अनुकूलक को जानकारी देते हैं लेकिन अनुकूलक को किसी विशिष्ट योजना का चयन करने के लिए मजबूर नहीं करते हैं। एसक्यूएल योजना आधार रेखा अनुकूलक योजना चयन को स्वीकृत योजनाओं के एक सेट तक सीमित करती है। यदि आप चाहते हैं लागत-आधारित योजनाओं पर विचार करें, उन्हें योजनाओं के स्वीकृत बेसलाइन सेट में शामिल करें।

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

SQL योजना प्रबंधन

SQL योजना प्रबंधन (SPM) में निम्नलिखित घटक होते हैं:

  • प्लान कैप्चर करें
  • योजना चयन
  • योजना विकास
एसपीएम प्लान कैप्चर

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

एसपीएम योजना चयन

जब आप बेसलाइन योजना के साथ SQL कथन निष्पादित करते हैं, तो यह उस SQL ​​​​के लिए सर्वोत्तम योजना का विकल्प चुनता है। अनुकूलक उसी प्रक्रिया का उपयोग करता है। उपलब्ध एसक्यूएलप्रोफाइल प्रत्येक योजना के लिए अनुमानित लागत को भी प्रभावित करता है और उसी के अनुसार एक योजना का चयन करता है।

एसपीएम योजना विकास

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

प्रोफाइल बनाम बेसलाइन तुलना

निम्न तालिका, https://www.cnblogs.com/princessd8251/articles/3637461.html से, SQL प्रोफ़ाइल और SQL योजना आधार रेखा की तुलना करती है:

Oracle SQL प्रोफ़ाइल और आधार रेखा

आर्किटेक्चर

निम्न छवि SQL योजना बेसलाइन आर्किटेक्चर दिखाती है:

Oracle SQL प्रोफ़ाइल और आधार रेखा

छवि स्रोत:https://ittutorial.org/sql-plan-management-using-sql-plan-baselines-in-oracle-oracle-database-performance-tuning-tutorial-14/)


SQL प्लान बेसलाइन लोड करें

निम्न छवि SQL योजना आधार रेखा को लोड करने के दो तरीके दिखाती है:

Oracle SQL प्रोफ़ाइल और आधार रेखा

छवि स्रोत:https://ittutorial.org/sql-plan-management-using-sql-plan-baselines-in-oracle-oracle-database-performance-tuning-tutorial-14/


पहली विधि से, आप OPTIMIZER_CAPTURE_SQL_PLAN_BASELINES सेट कर सकते हैं TRUE . के लिए आरंभीकरण पैरामीटर स्वचालित योजना कैप्चर का उपयोग करने के लिए। यह इनिशियलाइज़ेशन पैरामीटर FALSE है डिफ़ॉल्ट रूप से, इसलिए इसे TRUE . पर सेट करें जैसा कि निम्नलिखित उदाहरण में दिखाया गया है:

Oracle SQL प्रोफ़ाइल और आधार रेखा

दूसरी विधि से, आप DBMS_SPM . का उपयोग कर सकते हैं SQL प्लान बेसलाइन को मैन्युअल रूप से प्रबंधित करने के लिए पैकेज। निम्न उदाहरण में दिखाए गए अनुसार SQL ट्यूनिंग सेट से योजनाओं को लोड करें:

Oracle SQL प्रोफ़ाइल और आधार रेखा
SQL प्लान बेसलाइन को मैन्युअल रूप से लोड करें

प्लान बेसलाइन को मैन्युअल रूप से लोड करने के लिए निम्न कमांड का उपयोग करें:

Oracle SQL प्रोफ़ाइल और आधार रेखा

SQL प्लान बेसलाइन उपयोग की जांच करें

SQL प्लान बेसलाइन लोड करने के बाद, आपको यह देखने के लिए SQL को निष्पादित करने की आवश्यकता है कि क्या ऑप्टिमाइज़र SQL प्लान बेसलाइन का उपयोग कर रहा है। आप SQL_TEXT और योजना के नाम का उपयोग करके SQL प्लान बेसलाइन को क्वेरी कर सकते हैं:

Oracle SQL प्रोफ़ाइल और आधार रेखा

एसक्यूएल प्लान बेसलाइन प्रदर्शित करें

SQL प्लान बेसलाइन प्रदर्शित करने के लिए निम्न क्वेरी चलाएँ:

Oracle SQL प्रोफ़ाइल और आधार रेखा

एसक्यूएल प्लान बेसलाइन ड्रॉप करें

SQL प्लान बेसलाइन को छोड़ने के लिए, यह जाँचने के लिए निम्न क्वेरी चलाएँ कि कौन सा SQL प्लांट ऑप्टिमाइज़र उपयोग कर रहा है:

Oracle SQL प्रोफ़ाइल और आधार रेखा

फिर, योजना के उपयोग में आने के बाद, आधार रेखा को छोड़ने के लिए निम्न आदेश चलाएँ:

Oracle SQL प्रोफ़ाइल और आधार रेखा

Oracle SQL प्रोफ़ाइल

SQL ट्यूनिंग सलाहकार, जिसे आप Oracle Enterprise Manager (OEM) के माध्यम से या कमांड-लाइन क्वेरी का उपयोग करके ट्रिगर करते हैं, SQLstatement के लिए SQL प्रोफ़ाइल उत्पन्न कर सकता है। इस प्रोफ़ाइल में कथन के बारे में अतिरिक्त जानकारी शामिल है।

उदाहरण

इस उदाहरण में, आप पहले SQL ट्यूनिंग सलाहकार को sql_id के विरुद्ध चलाते हैं और फिर SQL प्रोफ़ाइल पर संचालन निष्पादित करते हैं:

1. SQL ट्यूनिंग सलाहकार चलाएँ

sql_id, 6dkrnbx1zdwy38 के लिए निम्न SQL ट्यूनिंग सलाहकार कोड चलाएँ :

Oracle SQL प्रोफ़ाइल और आधार रेखा Oracle SQL प्रोफ़ाइल और आधार रेखा

निम्न DBMS_SQLTUNE.report_tuning_task चलाएँ अनुशंसाओं के लिए:

Oracle SQL प्रोफ़ाइल और आधार रेखा

2. sql_profile को स्वीकार करें

sql_profile को स्वीकार करने के लिए निम्न कोड चलाएँ:

Oracle SQL प्रोफ़ाइल और आधार रेखा

3. sql_profile का नाम जांचें

sql_profile नाम जाँचने के लिए निम्न क्वेरी का उपयोग करें:

Oracle SQL प्रोफ़ाइल और आधार रेखा

4. sql_profile अक्षम करें

sql_profile को अक्षम करने के लिए निम्न कोड चलाएँ:

Oracle SQL प्रोफ़ाइल और आधार रेखा

इसे सक्षम करने के लिए, मान को DISABLED . से बदलें करने के लिए ENABLED

5. sql_profile छोड़ें

sql_profile को छोड़ने के लिए निम्न कोड चलाएँ:

Oracle SQL प्रोफ़ाइल और आधार रेखा

निष्कर्ष

जब आप किसी SQL कथन को निष्पादित करते हैं, तो ऑप्टिमाइज़र क्वेरी को पार्स करने के लिए एक निष्पादन योजना बनाता है, हार्ड डिस्क से डेटा पुनर्प्राप्त करता है, और इसे मेमोरी में रखता है। SQL प्रोफ़ाइल और बेसलाइन ऑप्टिमाइज़र को समय और CPU की कम से कम खर्चीली योजना चुनने के लिए मार्गदर्शन करते हैं। लागत। एक अच्छी SQL योजना कुशलता से एक क्वेरी चलाती है और वांछित परिणाम तेजी से प्रदान करती है।

हमारी डेटाबेस सेवाओं के बारे में अधिक जानें।

कोई टिप्पणी करने या प्रश्न पूछने के लिए प्रतिक्रिया टैब का उपयोग करें। आप हमारे साथ बातचीत भी शुरू कर सकते हैं।


  1. Oracle APEX और ORDS को स्थापित और कॉन्फ़िगर करें

    यह पोस्ट Oracle® एप्लिकेशन एक्सप्रेस (APEX) और Oracle REST डेटा सर्विसेज (ORDS) का वर्णन करती है, जिसमें APEX को स्थापित करने और स्थापित करने और कॉन्फ़िगर करने के चरण शामिल हैं। आमतौर पर, डेटाबेस एडमिनिस्ट्रेटर (डीबीए) इन दोनों कार्यों को अंजाम देते हैं। अपेक्स Oracle ने APEX को एक कम-लागत, वेब-आधा

  1. Microsoft Azure और Oracle Cloud Infrastructure पर एप्लिकेशन चलाएँ

    Microsoft® और Oracle® ने ग्राहकों को Oracle E-Business Suite®, JD Edwards®EnterpriseOne, और PeopleSoft® जैसे Oracle अनुप्रयोगों को क्लाउड में परिनियोजित करने में सक्षम बनाने के लिए एक साथ काम किया है। परिचय आप अनुप्रयोग और डेटाबेस परत के बीच उच्च-बैंडविड्थ, निजी और निम्न-विलंबता कनेक्शन स्थापित करन

  1. स्वायत्त डेटाबेस समर्पित और एक्सडाटा क्लाउड इन्फ्रास्ट्रक्चर

    यह पोस्ट Oracle® AutonomousDatabase Dedicated और Exadata® क्लाउड इन्फ्रास्ट्रक्चर के बारे में विभिन्न स्रोतों से जानकारी प्रस्तुत करती है। परिचय ओरेकल ऑटोनॉमस डेटाबेस टेक्निकल ओवरव्यू के अनुसार:ओरेकल ऑटोनॉमस डेटाबेस एक सेवा के रूप में डेटा प्रबंधन देने के लिए मशीन लर्निंग की शक्ति के साथ क्लाउड के