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 ) を入力する。