Oracle
 sql >> डेटाबेस >  >> RDS >> Oracle

R12.2/R12.1 अपग्रेड के लिए शीर्ष AWR उपयोगी प्रश्न

R12.1/R12.2 काफी बड़े  और समय लेने वाले अपग्रेड हैं। R12.2 अपग्रेड प्रदर्शन समस्याओं को हल करने के लिए हमें सभी लंबे समय तक चलने वाले sql को खोजने की आवश्यकता है। चूंकि प्रत्येक पुनरावृत्ति में बहुत समय लगता है, यह महत्वपूर्ण है, हमने कम पुनरावृत्तियों में प्रदर्शन के मुद्दों का पता लगाने और उन्हें तदनुसार ठीक करने का प्रयास किया

यहां R12.2 अपग्रेड प्रदर्शन समस्याओं को हल करने के लिए शीर्ष AWR उपयोगी क्वेरी हैं

यदि SQL अभी भी मेमोरी (कर्सर कैश) में है, तो निम्न का उपयोग लंबे समय तक चलने वाले SQL की पहचान करने के लिए किया जा सकता है जो शायद AWR को अभी तक नहीं लिखे गए हैं (अंतिम स्नैपशॉट पर)

सेलेक्ट * से (सेलेक्ट ss.sql_id, ROUND(SUM(ss.elapsed_time/1000000),0) elapsed_time_secs, ROUND(SUM(ss.cpu_time/1000000),0) cpu_time_secs, SUM(ss.disk_reads) disk_reads, SUM(ss.direct_writes) direct_writes, SUM(ss.buffer_gets) बफ़र_गेट्स, SUM(ss.px_servers_executions) px_server_execs, SUM(ss.rows_processed) Rows_processed, SUM(ss.executions) निष्पादन, SUM(ss. ss.sharable_mem) sharable_mem, SUM(ss.total_sharable_mem) total_sharable_mem V$sqlstats से ss GROUP BY ss.sql_id ORDER BY 2 DESC) जहां ROWNUM <=100;

निम्न SQL स्क्रिप्ट दो AWR स्नैपशॉट के बीच सबसे लंबे समय तक चलने वाले SQL की रिपोर्ट करेगी

चुनें * से (चयन dhs.sql_id, ROUND(SUM(dhs.elapsed_time_delta/1000000),0) elapsed_time_secs, ROUND(SUM(dhs.cpu_time_delta/1000000),0) cpu_time_secs, SUM(dhs.disk_reads_delta) disk_reads, SUM(dhs.buffer_gets_delta) बफ़र_गेट्स, SUM(dhs.px_servers_execs_delta) px_server_execs, SUM(dhs.rows_processed_delta) Rows_processed, SUM(dhs.executions_delta) निष्पादन, ROUND(SUM(dhs/1000000), ROUND(SUM(dhs/1000000), ROUND(SUM) (dhs.clwait_delta/1000000),0) clwait_secs, ROUND(SUM(dhs.ccwait_delta/1000000),0) ccwait_secs, ROUND(SUM(dhs.apwait_delta/1000000),0) apwait_secs FROM dba_hist_sqlstat dhs ,v$डेटाबेस dhs.dbid =d.dbid और Snap_id> &begin_snap और Snap_id <=&end_snap ग्रुप बाय dhs.sql_id ORDER BY 2 DESC) जहां ROWNUM <=100;

जहां &begin_snap और &end_snap प्रारंभ और अंत स्नैपशॉट आईडी हैं।
इस कथन का आउटपुट निम्न के जैसा दिखाई देगा:

SQL_ID ELAPSED_TIME_SECS CPU_TIME_SECS DISK_READS BUFFER_GETS…. ------------------------------------------------- -------------------- .... 5vaxut40xbrmr 367440 42999 34838244 3795838289…. 943ra4b7zg28x 264369 170788 441127 562033013…. fkkrk9frwqfdr 70370 6448 3599284 469639133…. 4847s6dt6sds9 68298 38896 7125573 1327384554…. 2k3uw8n473r30 63600 27402 20043712 587615960….

नोट:बीता हुआ समय किसी नौकरी के सभी कर्मचारियों के लिए अधिकतम बीता हुआ समय है।

एंटरप्राइज़ मैनेजर का उपयोग महंगे SQL की पहचान करने के लिए भी किया जा सकता है।

लंबे समय तक चलने वाले SQL के लिए प्रदर्शन कर्सर रिपोर्ट प्राप्त करें

इसके लिए  STATISTICS_LEVEL=ALL और _rowsource_execution_statistics =TRUE। सभी जानकारी प्राप्त करने के लिए इसे बिना किसी देरी के चलाया जाना चाहिए, अन्यथा ये जानकारी SGA से बाहर हो जाएगी

SET पेज 0 SET लाइन्स 300 SET LONG 10000SET LONGCHUNKSIZE 10000 SPOOL .txt SELECT * FROM TABLE(dbms_xplan.display_cursor('', NULL, 'ALL +ALLSTATS')); स्पूल ऑफ; 

यदि SQL अब मेमोरी में नहीं है, लेकिन AWR में है, तो इसके बजाय डिस्प्ले AWR रिपोर्ट का उपयोग करें:

सेट पेज 0 SET लाइन्स 300 SET LONG 10000 SET LONGCHUNKSIZE 10000 SPOOL .txt SELECT * FROM TABLE(dbms_xplan.display_awr('', NULL, NULL, 'ALL')); स्पूल ऑफ; 

नोट:ध्यान रखें कि डिस्प्ले AWR रिपोर्ट (DBMS_XPLAN.DISPLAY_AWR) वास्तविक पर रिपोर्ट नहीं करती है:इसमें +ALLSTATS विकल्प नहीं है, और AWR में संग्रहीत निष्पादन योजना चरणों के लिए कोई वास्तविक आँकड़े नहीं हैं

महत्वपूर्ण नोट:डिस्प्ले कर्सर और AWR रिपोर्ट केवल sql_text (पहले 1000 वर्ण) दिखाती हैं, sql_fulltext नहीं। इसलिए, यदि आवश्यक हो, तो पूर्ण SQL पाठ प्राप्त करने के लिए निम्न SQL स्क्रिप्ट चलाएँ

सेट पेज 0 सेट लाइनें 300 लंबी 10000 सेट करें 10000 स्पूल सेट करें.txt v$SQL से sql_id, sql_text, sql_fulltext चुनें जहां sql_id =''; स्पूल ऑफ; 

समानांतर क्वेरी/डीएमएल का उपयोग करके SQL के लिए SQL मॉनिटर रिपोर्ट प्राप्त करें

इसका मुख्य लाभ यह है कि यह एक अच्छा दृश्य देता है कि समानांतर SQL/DML योजना के चरणों और समानांतर दासों में कैसा प्रदर्शन करता है

सेट पेज पर सेट ट्रिम पर ट्रिम्सपूल सेट करें 0 सेट लंबा 10000000 सेट लंबा चंक्ससाइज 10000000 सेट लाइनसाइज 200 सेट टर्मआउट ऑफ स्पूल sql_monitor_for_.htm चर my_rept CLOB; BEGIN :my_rept :=dbms_sqltune.report_sql_monitor(sql_id => '', report_level => 'ALL', type => 'HTML'); अंत; / प्रिंट:my_rept स्पूल ऑफ; 
. पर टर्मआउट सेट करें

जहां &begin_snap और &end_snap और प्रारंभ और अंत स्नैपशॉट आईडी हैं।

कैसे पता करें कि विशेष sql कब चला

चयन dhs.sql_id, dsn.snap_id, dsn.begin_interval_time, dsn.end_interval_time, ROUND(SUM(dhs.elapsed_time_delta/1000000),0) elapsed_time_secs FROM dbanapshot_sqlstat dhs ,sdsd d.dbid और dsn.snap_id =dhs.snap_id और dsn.dbid =dhs.dbid और dsn.instance_number =dhs.instance_number और dhs.sql_id ='' और dsn.snap_id और _dsn. dhs.sql_id, dsn.snap_id, dsn.begin_interval_time, dsn.end_interval_time द्वारा dsn.snap_id द्वारा &end_snap ग्रुप ऑर्डर करें;

जहां &begin_snap और &end_snap प्रारंभ और अंत स्नैपशॉट आईडी हैं।
इस कथन का आउटपुट निम्न के जैसा दिखाई देगा:

एसक्यूएल_आईडी SNAP_ID BEGIN_INTERVAL_TIME END_INTERVAL_TIME ELAPSED_TIME_SECS 2k3uw8n473r30 8278 04-JAN-13 23.00.25.5560 05-JAN-13 00.00.21.1620 2321123 2k3. 

Ebiz Environment पर CBO आँकड़े कैसे खोजें

चयन स्वामी, table_name, num_rows, TO_CHAR(last_analyzed,'DD-MON-YYYY HH24:MI:SS') last_analyzed from the all_tables जहां मालिक IN (सेलेक्ट अपर(oracle_username) fnd_oracle_userid से स्नेम चुनें और जहां oracle_and 999 से केवल 900 पढ़ा जाए ='यू' यूनियन सभी चयन अलग ऊपरी (oracle_username) नाम fnd_oracle_userid a, fnd_product_installations b से जहां a.oracle_id =b.oracle_id) स्वामी द्वारा आदेश, table_name; 

इस कथन का आउटपुट निम्न के जैसा दिखेगा:

स्वामी TABLE_NAME NUM_ROWS LAST_ANALYZED ---------------------------------- --- ABM ABM_ACC_MAP_SUM_REP 0 06-DEC-2016 08:46:33 ABM ABM_ACT_ACC_RU_DAT 0 06-DEC-2016 08:46:35 ABM ABM_ACT_STA_RU_DAT 0 06-DEC-2016 08:46:36

अपग्रेड के बाद AWR रिपोर्ट कैसे प्राप्त करें

AWR रिपोर्ट 
• अपग्रेड के चलने की पूरी अवधि के लिए प्राप्त की जा सकती है।
• लंबे समय तक चलने वाले कार्यों की अवधि के लिए (यानी कार्य शुरू होने से ठीक पहले और उसके समाप्त होने के ठीक बाद लिए गए स्नैपशॉट के बीच) .
• हर एक स्नैपशॉट.

AWR रिपोर्ट कैसे जनरेट करें
(1) $ORACLE_HOME/rdbms/admin पर जाएं
(2) awrrpt.sql चलाएँ AWR रिपोर्ट जनरेट करें।
(3) हमेशा HTML रिपोर्ट प्रकार चुनें।
(4) Oracle RAC उदाहरण पर, awrrpti.sql आमतौर पर पर्याप्त होगा, क्योंकि अपग्रेड केवल एक Oracle RAC नोड पर चलाया जाएगा।
AWR रिपोर्ट को स्वचालित किया जा सकता है। यह उपयोगी है यदि बड़ी संख्या में AWR रिपोर्ट तैयार की जाती है, विशेष रूप से लगातार स्नैपशॉट के लिए। My Oracle समर्थन दस्तावेज़ में "स्वचालित AWR रिपोर्ट्स" अनुभाग देखें "स्वचालित वर्कलोड रिपोजिटरी के साथ प्रदर्शन निदान (दस्तावेज़ 1674086.1)"। या एक उच्च अवधारण अवधि या एक छोटा स्नैपशॉट अंतराल है) अपग्रेड के दौरान काफी बढ़ गया होगा। इसलिए, एडब्ल्यूआर चलाने से पहले निश्चित वस्तु और शब्दकोश आंकड़ों को इकट्ठा करने की आवश्यकता हो सकती है।

संबंधित लेख

स्वचालित वर्कलोड रिपोजिटरी
Oracle ASH (सक्रिय सत्र इतिहास)
Oracle प्रदर्शन ट्यूनिंग
ADDM कार्य कैसे बनाएं और इसकी रिपोर्ट कैसे जांचें
Oracle डेटाबेस में सत्र विवरण कैसे खोजें


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Oracle अनुप्रयोग एक्सप्रेस पर SQL के साथ प्रारंभ करना

  2. पेजिनेशन क्वेरी में ROWNUM कैसे काम करता है?

  3. ORA-00984:यहां कॉलम की अनुमति नहीं है

  4. Oracle में SQL क्वेरी से परिणाम संयोजित करें

  5. पीएल/एसक्यूएल के माध्यम से ओरेकल निर्यात करने का प्रयास करने की तारीख 0000-00-00