データベースの稼働状況を診断共有するサイト パフォーマンスセラピー
Statspackとは Statspack設定 Statspackでの情報収集 Statspackレポートの出力 便利スクリプト Oracleチューニング講座


レポート作成
スナップショットを複数取得すれば、2点間(スナップショット間)の稼働状況をパフォーマンスレポートとして出力することができます。
Statspackのパフォーマンスレポートはレポート作成スクリプトを実行するだけで作成されます。レポート作成スクリプトを実行すると、開始スナップショットと終了スナップショットの入力を要求されます。レポートに出力させたい期間に該当するスナップショットを指定してください。最後に、出力されるファイル名を入力してレポート出力のタスクは終了です。管理しやすいようにレポート期間を表す日付をファイル名にするとよいでしょう。

SQL > connect PERFSTAT/<password>

SQL > @?/rdbms/admin/spreport.sql

             begin_snapに値を入力してください: <id>

             end_snapに値を入力してください: <id>

             report_nameに値を入力してください: <レポート名>


spreport.sqlの実行例
spreport.sqlを実行すると、以下のような画面が出力されます。
赤枠の「Snap Id」がスナップショットのIDです。開始スナップショット、終了スナップショットには「Snap Id」を指定します。


レポートが出力されたらパフォーマンス・セラピーにアップロードしてください。パフォーマンス・セラピーは複数のレポートファイルをzipでまとめてアップロードできますので、1週間分のレポートを一度にアップロードして稼働状況を確認すればアップロードの手間を軽減できます。


SQL詳細レポートの作成
SQL詳細レポートは負荷の高いSQLがどのように実行されているのかを調査するのに役立ちます。パフォーマンス・セラピーを利用するのに必須のレポートではありませんが、Statspackでのチューニング作業の中では便利な機能です。
パフォーマンス・セラピーの診断項目には「SQL」というカテゴリがあります。SQLカテゴリでは、CPUを多く利用しているSQL、経過時間の長いSQL、アクセスするデータの多いSQL が表示されています。



SQLの先頭に括弧内[]に記されているのがハッシュ値です。ハッシュ値とはSQLを一意に識別するためのキー値のようなものです。SQL詳細レポートでは特定のSQLの情報を出力させるため、ハッシュ値を指定することになります。また、「最新レポート開始日時」とはSQLが出力されている最新のレポートの開始日時を表しています。SQL詳細レポートでも開始スナップショットと終了スナップショットを要求されるので、「最新レポート開始日時」を参考にスナップショットを指定してください。

※なお、 SQL詳細情報をレポート出力するには、スナップショット・レベルを6以上に設定してスナップショットを取得しておく必要があります。

SQL > connect PERFSTAT/<password>

SQL > @?/rdbms/admin/sprepsql.sql

             begin_snapに値を入力してください: <id>

             end_snapに値を入力してください: <id>

             hash_valueに値を入力してください: <ハッシュ値>

             report_nameに値を入力してください: <レポート名>


SQL詳細レポートの出力例
spreport.sqlを実行すると、以下のような詳細レポートが出力されます。
レポートにはSQLが実行されたときのアクセスパスの情報と、実行時のリソース情報(アクセスしたブロック数など)が表示されます。



SQLのパフォーマンスが悪く、チューニングが必要な場合には、コチラ までご相談ください。