Statspackとは
Statspackはデータベースの稼働統計をレポーティングするツールです。デフォルトではインストールされていないため、使用に当たってはまずインストール作業が必要です。インストール手順はOracle Database構築済み環境の $ORACLE_HOME/rdbms/admin 配下に配置されているspdoc.txt に記載されています。このドキュメントを参照してインストールを行ってください。
Statspackでレポーティングするためには、前段階としてSnapshot(スナップショット)と呼ばれる情報を取得・保存しておく必要があります。Snapshotは、取得時点でのデータベースの稼働情報です。レポートでは、任意の2つの時点のSnapshotを指定し、それらの差分から該当時間帯のデータベースの稼働統計を出力します。30分~1時間程度の定期的な間隔でSnapshotを取得・保存しておき、確認したい時間帯のレポートを出力して稼働状況を確認したり、パフォーマンス問題の調査に用いるといった運用が一般的です。
図1はStatspackレポートの取得イメージです。9:00~18:00の間で3時間置きにSnapshotを取得した場合の例です。この場合9:00~12:00、12:00~15:00といった単体のSnapshot間でのレポート出力も可能ですが、9:00~18:00の範囲のように複数のSnapshotを跨いだレポート出力も可能です。
Statspackレポートの出力方法は以下の通りです。
コマンド1:Statspackレポートの出力方法
Statspackインストール時に指定したStatspack用データベースユーザ(perfstat)で接続し、以下のスクリプトを実行します。
SQL> @$ORACLE_HOME/rdbms/admin/spreport.sql
※1 実行後にレポートの対象とするSnapshotの範囲指定が求められます。
※2 RAC環境ではインスタンスごとに実行します。
Statspackレポートの一般的な見方についてはインターネット上にも多数情報が公開されていますので、詳細はそちらに譲るとして、今回はStatspackのさらなる活用方法や実運用上の注意点を紹介します。
※以下の記事でStatspackとV$ビューを組み合わせたトラブル調査方法も紹介していますので、併せてご参照ください。
Oracle Database のパフォーマンスダウン発生に備えたV$ビューの定期取得と調査方法