【Oracle指令碼】尋找Oracle高消耗語句

來源:互聯網
上載者:User

標籤:oracle   admin   cccccc   style   color   

在運行下面的指令碼之前需要先用產生AWR報告的SQL(程式指令碼一般儲存在$ORACLE_HOME下的rdbms/admin中,名稱為awrrpt.sql,需要輸入產生AWR報告的天數範圍)找到開始和結束的snapshot編號:begin_snap和end_snap。

set line 1000  set linesize 200  set pagesize 2000  set long 999999  set echo on  set markup html on  select res.*    from (select          to_char(d.end_interval_time,‘yyyy-mm-dd‘),                          a.PARSING_SCHEMA_NAME,                          c.MODULE,                          a.sql_id,                          a.execs as 執行次數,                          ROUND(a.cpu_times / a.execs, 2) as 單次執行時間,                          a.cpu_times as cpu消耗時間,                          ROUND(a.cpu_times / b.sum_time * 100, 2) as 消耗cpu百分比,                          a.buffer_gets as 邏輯讀,                          ROUND(a.buffer_gets / b.sum_buffer * 100, 2) as 邏輯讀百分比,                          a.disk_read as 物理讀,                          ROUND(a.disk_read / b.sum_disk * 100, 2) as 物理讀百分比,                          c.sql_fulltext            from (select PARSING_SCHEMA_NAME,                         sql_id,                         sum(EXECUTIONS_DELTA) AS execs,                         round(sum(CPU_TIME_DELTA) / 1000000, 2) AS cpu_times,                         round(sum(ELAPSED_TIME_DELTA) / 1000000, 2) AS elapsed_time,                         sum(BUFFER_GETS_DELTA) AS buffer_gets,                         sum(DISK_READS_DELTA) AS disk_read                    from sys.WRH$_SQLSTAT wr, gv$instance i                   where SNAP_ID <= &end_snap                     and snap_id >= &begin_snap                     and wr.INSTANCE_NUMBER = i.INSTANCE_NUMBER                     and i.instance_number = &instance_number                   group by PARSING_SCHEMA_NAME, wr.INSTANCE_NUMBER, sql_id) a,                 (SELECT round(SUM(CPU_TIME_DELTA) / 1000000, 2) sum_time,                         SUM(BUFFER_GETS_DELTA) sum_buffer,                         sum(DISK_READS_DELTA) sum_disk                    FROM sys.WRH$_SQLSTAT wr, gv$instance i                   where SNAP_ID <= &end_snap                     and snap_id >= &begin_snap                     and wr.INSTANCE_NUMBER = i.INSTANCE_NUMBER                     and i.instance_number = &instance_number) b,                 v$sqlarea c,                 dba_hist_snapshot d                          where a.execs > 0             and a.sql_id = c.sql_id             and a.PARSING_SCHEMA_NAME <> ‘SYS‘             and d.snap_id = &end_snap           order by cpu消耗時間 desc) res           where rownum < 41;

將指令碼輸出內容儲存到記事本txt中,並將記事本的尾碼名更改為.html,這樣就可以輸出以下的網頁內容:

650) this.width=650;" src="http://img.blog.csdn.net/20140321225947406?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvbGVleGlkZQ==/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/SouthEast" "918" height="76" />

【Oracle指令碼】尋找Oracle高消耗語句

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.