STATSPACKユーティリティを使ってみる
(1)スナップショットの取得
perfstatユーザでstatspack.snapプロシージャを実行
SQL> connect perfstat/perfstat 接続されました。 SQL> execute statspack.snap PL/SQLプロシージャが正常に完了しました。
上記のプロシージャを実行してスナップショットを取得すると、V$表から情報を収集しSTATSPACKのSTATS$表にデータを格納する。
※明確なパフォーマンス分析のためには、収集されるデータに時間情報が含まれるようにTIMED_STATISTICSパラメータをTRUEに設定する(R9.0)。
R9.2.0からはSTATISTICS_LEVELをTYPICAL以上に設定すると、自動的にTIMED_STATISTICSの値がTRUEになる。
(2)スナップショット取得の自動化
spauto.sqlスクリプトを実行して、ジョブ・キューを登録する。
Oracleのジョブキューを利用するには、JOB_QUEUE_PROCESSES初期化パラメータを1以上に設定する必要がある。
SQL> @?/rdbms/admin/spauto.sql SQL> select job,priv_user,next_date,interval from dba_jobs ; JOB PRIV_USE NEXT_DATE INTERVAL ---- -------- ------------------- ------------------------ 1 PERFSTAT 2006-07-07 17:00:00 trunc(SYSDATE+1/24,'HH')
※ジョブの管理には、DBMS_JOBパッケージを利用する。DBMS_JOBパッケージにはジョブの登録・変更・削除などを行うためのプロシージャが用意されており、ユーザーが必要に応じて実行する。
(例)ジョブの削除
SQL> EXECUTE DBMS_JOB.REMOVE(1) ;
(3)レポート作成
perfstatユーザでspreport.sqlを実行
SQL> @?/rdbms/admin/spreport.sql : begin_snapに値を入力してください: 1 : end_snapに値を入力してください: 2 : report_nameに値を入力してください:1_2
実行ディレクトリにsp
(4)STATSPACK用データのメンテナンス