データベースの問題を表示するときに誰フィードバック問題あれば通常、それは問題を見つけるためのイニシアチブをとる、混乱感のようなものになります基本的には方向ではありません、AWR、灰に発生した時間帯は、からの質問やタイムスタンプの一部です関連情報を見つけるための歴史、個人的な仕上げのスクリプト以下、当日の負荷情報データベースの期間を表示することができ、それは忙しいデータベースを十分に把握することができます。
私は朝6:00午前12時00分負荷データベースに見たいような、簡単な例を見てください
Showdbtime.shスクリプトは、包括的なデータベースの負荷値設定された時間帯で表示されます。そのような7:00時間(60分)6:00として、DBTIME 120分の場合、表示負荷が200%です
BEGIN_TIME END_TIME ELAPSED_TIME DBTIME WORKLOAD_PER
----------------------------------- ---------- ------------------------- ------------- ---------- - ------------------
201 ** 21-MAY-14 06.07.33.893 PM 201 ** 21-MAY-14 07.07.33.893 PM 60 120 200%
次のようにスクリプトを読み取ります。
SQLPLUS -s $ DB_CONN_STR @ $ SH_DB_SID <
セットLINESIZE 200
COLのBEGIN_TIMEフォーマットA35
コルEND_TIMEフォーマットA35
コルのelapsed_timeフォーマット99999999.999
COLのworkload_perフォーマットA20
SELECT
BEGIN_TIME、END_TIME、
のelapsed_time、
DBTIME、
TRUNC(DBTIME /デコード(のelapsed_time、0,1、のelapsed_time)、2)* 100 ||」 % 'workload_per
から
(
選択
B.SNAP_IDを||' ** '|| B.END_INTERVAL_TIMEのBEGIN_TIME、
E.SNAP_ID ||' **「|| E.END_INTERVAL_TIME END_TIME、
E.END_INTERVAL_TIME FROM EXTRACT(DAY - B.END_INTERVAL_TIME) * 1440 +
EXTRACT(E.END_INTERVAL_TIME FROM HOUR - B.END_INTERVAL_TIME)* 60 +
EXTRACT(E.END_INTERVAL_TIME -B.END_INTERVAL_TIMEからわずか)+
EXTRACT(E.END_INTERVAL_TIME -B.END_INTERVAL_TIMEから二番目)/ 60のelapsed_time、
db_time.dbtime
DBA_HIST_SNAPSHOT B、DBA_HIST_SNAPSHOT E FROM、
(
b.snap_id begin_snap、e.snap_id end_snap選択
ラウンド((和(e.value) -
(和b.value))/ 1000000 / 60,2)DBTIME
DBA_HIST_SYS_TIME_MODEL Eから、DBA_HIST_SYS_TIME_MODELのB、
(
begin_interval_time> SYSDATE -1 DBA_HIST_SNAPSHOTから選択分(snap_id)begin_snap、MAX(snap_id)end_snap
そしてEXTRACT $ 1、$ 2との間(END_INTERVAL_TIME FROM時間)
)temp_snap
WHERE
e.STAT_NAME = 'DB時間'
とb.snap_id = temp_snap.begin_snap
とe.snap_id = temp_snap.end_snap
AND b.STAT_NAME = 'DB時間'
グループEによって.snap_id、b.snap_id
)db_time
WHERE b.begin_interval_time> SYSDATE -1
と$ 1、$ 2との間のEXTRACT e.END_INTERVAL_TIME FROM(時間)
とb.snap_id = db_time.begin_snap
とe.snap_id = db_time.end_snap
)
/
EOFの
終了
あなたはデータベースごとに時間の負荷を表示したい場合はこれに基づき、あなたはいくつかの改善をスキップすることができます。
スクリプトshowdbtimerpt.sh
SQLPLUS -s $ DB_CONN_STR @ $ SH_DB_SID <プロンプト~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ~~~~~~~~~
オフセットヘッド
セットpages0の
オフセットフィードバック
にセットserveroutputを
スプールはshowdbtimerpt_tmp.sh
始める
.. $ 1に私のための$ 2ループ
(DBMS_OUTPUT.PUT_LINEを'kshのshowdbtime '|| I ||'' || (I + 1))。
ループを終了します。
終わり;
/
オフスプール。
EOF
明確な
エコー~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ~~
エコーBEGIN_TIME ------------------------- END_TIME -------------------- ------- ELAPSED_TIME- BTIME ----- WORKLOAD_PER --------
エコー------------------------- ---------- ----------------------------------- ----- -------- ---------- --------------------
kshのshowdbtimerpt_tmp.sh
RM showdbtimerpt_tmp.sh
終了
業績は、次のようになります。
BEGIN_TIME END_TIME ELAPSED_TIME DBTIME WORKLOAD_PER----------------------------------- ---------- ------------------------- ------------- ---------- - ------------------
201 ** 21-MAY-14 06.07.33.893 PM 201 ** 21-MAY-14 07.07.33.893 PM 60 120 200%
201 ** 21-MAY-14 07.07.33.893 PM 201 ** 21-MAY-14 08.07.33.893 PM 60 150 250%
201 ** 21-MAY-14 08.07.33.893 PM 201 ** 21-MAY-14 09.07.33.893 PM 60 240 400%
201 ** 21-MAY-14 09.07.33.893 PM 201 ** 21-MAY-14 10.07.33.893 PM 60 60 100%
201 ** 21-MAY-14 10.07.33.893 PM 201 ** 21-MAY-14 11.07.33.893 PM 60 120 200%
レポートはそう一目でいることを、負荷各時間帯を生成することができます。負荷は、関連するプロパティをクロール対象とすることができます。