次のスクリプトを実行する前に、SQL を使用して AWR レポートを生成する必要があります (プログラム スクリプトは通常、$ORACLE_HOME の rdbms/admin に awrrpt.sql という名前で保存されます。AWR を生成する日数の範囲を入力する必要があります)レポート) を使用して、開始スナップショットと終了スナップショット番号: begin_snap と end_snap を見つけます。
行数を 1000 に設定
行サイズを 200 に設定
ページサイズを 2000 に設定
長さを 999999 に設定
エコーを設定
マークアップ HTML を設定
解像度を選択 *
from (select to_char(d.end_interval_time,'yyyy-mm-dd')、
a.PARSING_SCHEMA_NAME、
c.MODULE、
a.sql_id、
a.execs を実行数として選択します。
ROUND (a.cpu_times / a.execs, 2) は 1 回の実行時間、
a.cpu_times は CPU 消費時間、
ROUND(a.cpu_times / b.sum_time * 100, 2) は CPU消費パーセンテージ、論理読み取りとして
a.buffer_gets、論理読み取りパーセンテージとして
ROUND(a.buffer_gets / b.sum_buffer * 100, 2)、物理読み取りとして
a.disk_read、
ROUND( a.disk_read / b.sum_disk * 100、2) 物理読み取りパーセンテージとして、
c.sql_fulltext
from (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) ASbuffer_gets,
sum(DISK_READS_DELTA) AS disc_read
sys.WRH$_SQLSTAT wr、gv$instance i
から、SNAP_ID <= &end_snap
and snap_id >= &begin_snap
and wr.INSTANCE_NUMBER = i.INSTANCE_NUMBER
and i.instance_number = &instance_number
PARSING_SCHEMA_NAME、wr.INSTANCE_NUMBER、sql_id) a,
(SELECTround(SUM(CPU_TIME_DELTA) / 1000000, 2) sum_time,
SUM(BUFFER_GETS_DELTA) sum_buffer,
sum(DISK_READS) _デルタ) sum_disk
FROM sys.WRH$_SQLSTAT wr, gv$instance i
ここで SNAP_ID <= &end_snap
and snap_id >= &begin_snap
and wr.INSTANCE_NUMBER = i.INSTANCE_NUMBER
そしてi.instance_number = &instance_number) b、
v$sqlarea c、
dba_hist_snapshot d
ここで、a.execs > 0
および a.sql_id = c.sql_id
および a.PARSING_SCHEMA_NAME < ;> 'SYS'
および d.snap_id = &end_snap
CPU 消費量の順に並べ替えます)
where
exit
は、スクリプト出力コンテンツをメモ帳 txt に保存し、メモ帳のサフィックス名を .html に変更します。これにより、次の Web ページ コンテンツが出力できるようになります: