Statspackは自動取得も可能
Oracle データベースでは、取得済みスナップショットの確認や
手動/自動での取得、対象レベルの指定も可能。その方法を紹介する。
Statspackの手動取得コマンド
デフォルト以外のレベルでスナップショットを取得するには、
引数に i_snap_level を追記する。
デフォルト
SQL> execute statspack.snap
※ レベル5でスナップショットが作成される
レベル6指定
SQL> execute statspack.snap(i_snap_level=> 6)
※ 実行時のみレベル6で取得される
Statspackの自動取得コマンド
日付の演算で一定時間毎に取得することも可能。
1時間毎
execute dbms_job.interval(<ジョブ>, 'sysdate+(1/24)');
10分毎
execute dbms_job.interval(<ジョブ>, 'sysdate+(1/144)');
取得済みのスナップショット確認SQL
SQL> select snap_id, to_char(snap_time, 'yy-mm-dd hh24:mi:ss') snap_time from stats$snapshot order by snap_id;
※ 参照している stats$snapshot は、Statspack インストール時に作成されるテーブル。
スナップショットレベルの変更コマンド
永続的にスナップショットレベルそのものを変更する場合は、
以下のように指定する。
レベル6に変更
execute statspack.modify_statspack_parameter(i_snap_level=> 6)
スナップショットの削除コマンド
全削除、期間、ID で管理が可能。
全て削除
@?/rdbms/admin/sptrunc.sql begin_or_exitに値を入力してください: --> 値を入力せず、Enter キーで全削除。
直近24時間分だけ残す
SQL> execute statspack.purge(1);
範囲指定削除
SQL> @?/rdbms/admin/sppurge.sql
実行後、losnapid ( 削除開始ID ) と、hisnapid ( 削除終了ID ) を入力する。