小さい頃はエラ呼吸

いつのまにやら肺で呼吸をしています。


Oracle 11g XEでSTATSPACKで分析レポートを出力してみる

はじめに

Oracle 11g XEでパフォーマンス分析ツールSTATSPACKによる分析レポートを出力する方法をまとめてみました。
この記事を書くにあたり、以下の記事を参考にしました。

STATSPACKのスナップショット

Oracleのパフォーマンス分析ツールSTATSPACKは、スナップショットと呼ばれる時系列上のある時点からある時点までの一定期間を対象に、パフォーマンスに関する統計情報を収集し、分析した結果を出力してくれます。
このため、STATSPACKで分析結果を得るには開始時点と終了時点の2つのスナップショットを取る必要があります。

スナップショットを取得する

perfstatユーザでログインし、以下のコマンドを実行するとスナップショットが作成されます。

connect perfstat/perfstat_pwd
execute statspack.snap
STATSPACKでレポートを出力する

スナップショットを2度取得したら、STATSPACKでレポートを出力してみます。
レポートを出力するには、以下のクエリを実行します。

@C:\oraclexe\app\oracle\product\11.2.0\server\rdbms\admin\spreport.sql


クエリを実行すると、スナップショットの一覧が表示されます。一覧にはスナップショットを取得した日付やスナップショットレベルなどが表示されています。

begin_snapに値を入力してくださいと聞かれたら、開始時点を示すスナップショットIDを入力します。(上記の例だと、3を入力する)

続けて、end_snapに値を入力してくださいと聞かれるので、終了時点を示すスナップショットIDを入力します。(上記の例だと、4を入力する)

レポートに名前をつけてくださいと聞かれます。何も入力せずにEnterキーを押した場合、sp_3_4.lstという名前で出力されます。
End of Report ( sp_3_4.lst )と表示されたらレポートの出力は完了です。

レポートファイルの出力先

レポートファイルの出力先は、sqlplusでログインした際のカレントディレクトリに出力されます。
拡張子はlstですが、普通にテキストエディタで開くことができます。

スナップショットの削除(期間指定)

スナップショットIDを指定して、ある2点間のスナップショットを削除する場合、以下のクエリを実行します。

@C:\oraclexe\app\oracle\product\11.2.0\server\rdbms\admin\sppurge.sql
スナップショットの全削除

スナップショットをすべて削除するには、以下のクエリを実行します。

@C:\oraclexe\app\oracle\product\11.2.0\server\rdbms\admin\sptrunc.sql

begin_or_exitに値を入力してくださいと聞かれますが、何も入力せずにEnterキーを押します。