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

इष्टतम प्रदर्शन के लिए Oracle डेटाबेस सांख्यिकी को कैसे पुनर्स्थापित करें

यह ब्लॉग पोस्ट यह पता लगाता है कि आप Oracle® डेटाबेस में सांख्यिकी को कब और कैसे पुनर्स्थापित कर सकते हैं।

परिचय

एक डेटाबेस प्रशासक (DBA) के रूप में, आप शायद अक्सर पाते हैं कि नई सांख्यिकी एकत्र करने से ऑप्टिमाइज़र सबऑप्टिमल एक्जीक्यूशन प्लान निष्पादित करता है। उन मामलों में, आप उस समय की सांख्यिकी को पुनर्स्थापित करना चाह सकते हैं जब प्रदर्शन बेहतर था।

हालांकि, Oracle डेटाबेस के विभिन्न संस्करणों में सांख्यिकी को संभालने के तरीके में मामूली बदलाव हैं:

  • Oracle 10g ने आसान पुनर्स्थापना के लिए सांख्यिकी को स्वचालित रूप से संरक्षित करना शुरू किया।
  • 11.1 और बाद के संस्करण में, Oracle ने एक बेहतर तरीका पेश किया, जिससे आप सांख्यिकी प्रकाशन को स्थगित कर सकते हैं।

खराब सांख्यिकी प्रदर्शन के संभावित कारण

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

Oracle 10g और बाद के संस्करण में, आप dbms_stats पैकेज का उपयोग करके सांख्यिकी को पुनर्स्थापित कर सकते हैं, जो आपको सांख्यिकी को पुनर्स्थापित और निर्यात करने का विकल्प देता है।

डिफ़ॉल्ट रूप से, Oracle ऐतिहासिक सांख्यिकी को 31 दिनों तक रखता है, लेकिन आप उस अवधि को बदल सकते हैं।

निम्न छवि वर्तमान प्रतिधारण अवधि दिखाने के लिए SQL कमांड दिखाती है:

इष्टतम प्रदर्शन के लिए Oracle डेटाबेस सांख्यिकी को कैसे पुनर्स्थापित करें

प्रतिधारण अवधि बदलने के लिए, निम्न कमांड चलाएं, जहां xx वह दिनों की संख्या है जिसे आप उपयोग करना चाहते हैं:

SQL> execute DBMS_STATS.ALTER_STATS_HISTORY_RETENTION (xx)

निम्न क्वेरी आपको यह समझने में मदद करती है कि आप कौन सा ऐतिहासिक डेटा स्टैट्स पुनर्स्थापित कर सकते हैं:

इष्टतम प्रदर्शन के लिए Oracle डेटाबेस सांख्यिकी को कैसे पुनर्स्थापित करें

नोट: यह उदाहरण पहले उल्लिखित तिथि और बाद की सांख्यिकी दिखाता है।

टेबल सांख्यिकी पुनर्स्थापित करना

यह उदाहरण दर्शाता है कि किसी पूर्व तिथि से टेबल सांख्यिकी को कैसे पुनर्स्थापित किया जाए।

पहले, निम्न कमांड चलाकर पहचानें कि कौन सी सांख्यिकी उपलब्ध हैं:

SQL> select TABLE_NAME, STATS_UPDATE_TIME from dba_tab_stats_history where table_name like 'MY_TABLE' and owner='MYSELF' order by 2; TABLE_NAME STATS_UPDATE_TIME --------------- -------------------------------------- MY_TABLE 20-DEC-19 05.32.26.887184 AM -05:00 MY_TABLE 20-DEC-19 10.10.19.361091 PM -05:00 MY_TABLE 21-DEC-19 05.32.14.475934 AM -05:00 MY_TABLE 21-DEC-19 10.10.18.725917 PM -05:00 MY_TABLE 22-DEC-19 10.10.17.841143 PM -05:00 MY_TABLE 23-DEC-19 05.32.56.168779 AM -05:00 MY_TABLE 23-DEC-19 10.10.23.633939 PM -05:00 MY_TABLE 24-DEC-19 05.32.14.082730 AM -05:00 MY_TABLE 24-DEC-19 10.10.21.712948 PM -05:00 MY_TABLE 25-DEC-19 05.32.13.710159 AM -05:00 MY_TABLE 25-DEC-19 10.10.17.836929 PM -05:00 MY_TABLE 26-DEC-19 05.32.14.545533 AM -05:00 MY_TABLE 26-DEC-19 10.10.12.808687 PM -05:00 MY_TABLE 27-DEC-19 05.32.13.779967 AM -05:00

आप देख सकते हैं कि MY_TABLE का पिछले कुछ दिनों में कई बार विश्लेषण किया गया था। 21-DEC-19 10.10.18.725917 PM -05:00 को एकत्र की गई टेबल की टेबल सांख्यिकी को पुनर्स्थापित करने के लिए, निम्न कमांड चलाएं:

SQL> execute dbms_stats.restore_table_stats('MYSELF','MY_TABLE','21-DEC-19 10.10.18.725917 PM -05:00'); PL/SQL procedure successfully completed.

स्कीमा सांख्यिकी पुनर्स्थापित करना

यह उदाहरण दर्शाता है कि किसी पूर्व तिथि से स्कीमा सांख्यिकी को कैसे पुनर्स्थापित किया जाए।

21-DEC-19 10.10.18.725917 PM -05:00 को एकत्र की गई टेबल की स्कीमा सांख्यिकी को पुनर्स्थापित करने के लिए, निम्न कमांड चलाएं:

SQL> exec dbms_stats.restore_schema_stats(ownname=>'MYSELF', AS_OF_TIMESTAMP=>'21-DEC-19 10.10.18.725917 PM -05:00');

AS_OF_TIMESTAMP के लिए उपलब्ध स्कीमा सांख्यिकी विकल्प खोजने के लिए, निम्न कमांड चलाएं और पुनर्स्थापना के लिए उपयुक्त तिथि चुनें:

select count(*), stats_update_time from dba_tab_stats_history where owner='MYSELF' group by stats_update_time;

अन्य सांख्यिकी पुनर्स्थापित करें

आपने देखा कि टेबल और स्कीमा स्टैट्स को कैसे पुनर्स्थापित किया जाता है। निम्न सूची उन सभी संस्थाओं को दिखाती है जिनके लिए आप पिछली सांख्यिकी को पुनर्स्थापित कर सकते हैं:

  • TABLE_STATS
  • SCHEMA_STATS
  • DATABASE_STATS
  • DICTIONARY_STATS
  • FIXED_OBJECTS_STATS
  • SYSTEM_STATS

आप जिन सांख्यिकी को सहेजना चाहते हैं उन्हें निर्यात करें

आप उन सांख्यिकी को भी निर्यात कर सकते हैं जिन्हें आप सहेजना चाहते हैं या परिवर्तन करने से पहले वर्तमान सांख्यिकी को निर्यात कर सकते हैं, निम्न चरणों को करके:

  1. निम्न उदाहरण के समान कमांड चलाकर सांख्यिकी टेबल बनाएं:

    Exec dbms_stats.create_stat_table(ownname => 'MYSELF', stattab => 'MYSELF_STATS_', tblspace => '');

    ownname: मालिक का नाम stattab: उपयोगकर्ता MYSELF के तहत बनाने के लिए टेबलनाम tblspace: वह टेबलस्पेस जिसके तहत यह टेबल बनाना है

  2. निम्न उदाहरण के समान कमांड चलाकर पिछली टेबल में सांख्यिकी निर्यात करें:

    exec dbms_stats.export_table_stats('SCHEMA1','TAB1',NULL,'STATS','TAG1_TAB1',TRUE);

    उदाहरण के लिए:

    Exec dbms_stats.export_database_stats(statown => 'MYSELF', stattab => 'MYSELF_STATS');

निष्कर्ष

इस पोस्ट में जानकारी और क्वेरी आपको सभी प्रकार की डेटाबेस सांख्यिकी (टेबल, डेटाबेस, स्कीमा, फिक्स्ड_ऑब्जेक्ट, सिस्टम, और डिक्शनरी) को एक उचित पिछली तिथि पर पुनर्स्थापित करने में मदद करती हैं, जिससे सुचारू डेटाबेस प्रदर्शन सुनिश्चित होता है।

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

हमारी डेटाबेस सेवाओं के बारे में और जानें


  1. क्लाउड में Oracle DBaaS डेटाबेस त्वरित रूप से तैनात करें क्लाउड में Oracle DBaaS डेटाबेस त्वरित रूप से तैनात करें

    यह पोस्ट Oracle® क्लाउड में डेटाबेस-एज़-अ-सर्विस (DBaaS) डेटाबेस बनाने के लिए सभी आवश्यक चरण प्रदान करती है। परिचय यह सेवा उपयोगकर्ताओं को बिना किसी भौतिक हार्डवेयर को सेट किए, ऑपरेटिंग सिस्टम इंस्टॉल किए, और Oracle डेटाबेस इंस्टॉलेशन पूर्वापेक्षाओं से निपटे बिना डेटाबेस बनाने में सक्षम बनाती है। डे

  1. Oracle 19c DBCA के साथ रिमोट PDB को CDB में कुशलतापूर्वक क्लोन करें Oracle 19c DBCA के साथ रिमोट PDB को CDB में कुशलतापूर्वक क्लोन करें

    यह ब्लॉग डेटाबेस कॉन्फ़िगरेशन असिस्टेंट (DBCA) का उपयोग करने के तरीकों का परिचय देता है, जो Oracle 19c में एक नई सुविधा है, एक रिमोट प्लगेबल डेटाबेस (PDB) को एक कंटेनर डेटाबेस (CDB) में क्लोन करने के लिए बिना स्रोत डेटाबेस का बैकअप लिए। स्रोत से लक्ष्य तक क्लोन करने में न्यूनतम समय लगता है। स्रोत DB

  1. Oracle 19c: डेटाबेस प्रशासकों के लिए उन्नत सुविधाएं Oracle 19c: डेटाबेस प्रशासकों के लिए उन्नत सुविधाएं

    Oracle® Database संस्करण 19c ने नई और बेहतर सुविधाओं की एक श्रृंखला पेश की। परिचय Oracle 19c, लंबी अवधि के समर्थन के साथ Oracle Database 12c रिलीज़ 2 उत्पाद परिवार में अंतिम है। यह Linux®, Windows®, Solaris®, HP/UX®, और AIX® प्लेटफॉर्म के साथ-साथ Oracle Cloud पर उपलब्ध है। Oracle 19c ग्राहकों को उनक