ORACLE のSTATSPACKユーティリティを使って、パフォーマンスの分析レポートの表示を行います。
定期的にスナップショットを作成しておくことで、詳細な分析レポートを作成することができます。
※クライアントのOracleバージョンと、接続先のOracleバージョンが異なる場合は実行できない場合があります。
■ STATSPACK実行前の準備
STATSPACKを実行する際には、あらかじめデータベース上にSTATSPACK専用のユーザーを作成している必要があります。
以下の手順にてSTATSPACK専用ユーザーを作成してください。
1. SQL*Plus を起動し、SYSユーザにてログインします。
2. {$ORACLE_HOME}/RDBMS/ADMINにある「spcreate.sql」スクリプトを実行します。
3. STATSPACK専用ユーザ(PERFSTAT)のパスワードを求めるプロンプトが表示されますので、パスワードを入力します。
4. STATSPACKユーザーのテーブル、インデックスを格納する表領域がプロンプトで求められますので、表領域名を入力します。
5. STATSPACKユーザーの一時表領域を求めるプロンプトが表示されますので、表領域名を入力します。
Object Browserにて、上記で作成したSTATSPACK専用ユーザでログインの上、STATSPACK画面を呼び出します。
※STATSPACKの実行は、あらかじめSTATSPACK専用ユーザーでログインの上、行う必要があります。
■ 設定項目
| 項目名 | 説明 | |
|---|---|---|
| 取得 | 取得レベルを選択し、スナップショットを取得します。取得レベルには0~10までに5段階あり、レベルが大きくなるほど詳細情報が記録されます。それぞれの取得レベルに含まれる情報は以下の通りです。 LEVEL0... 基本統計情報、アドバイス情報 LEVEL5... 基本統計情報、アドバイス情報、SQL統計情報 LEVEL6... 基本統計情報、アドバイス情報、SQL統計情報、SQL詳細情報 LEVEL7... 基本統計情報、アドバイス情報、SQL統計情報、SQL詳細情報、セグメント情報 LEVEL10... 基本統計情報、アドバイス情報、SQL統計情報、SQL詳細情報、セグメント情報、ラッチ詳細情報 |
|
| 表示 | 選択したスナップショットより、分析レポートの出力を行います。2つのスナップショットを選択している場合のみ、実行可能です。 |
|
| 削除 | 選択したスナップショットを削除します。 |
|
| 終了 | 画面を閉じます。 | |
| データベース | STATSPACKを実行するデータベースを選択します。 | |
| レポート出力実行ファイル |
すべてを一度に削除するためのスクリプトファイルを指定します。 スクリプトファイルには、通常は「{$ORACLE_HOME}\RDBMS\ADMIN」下にある「spreport.sql」を指定してください。 |
|
| レポート出力場所 |
レポートを出力するフォルダを選択します。 | |
| 指定削除実行ファイル |
選択したスナップショットを削除するためのスクリプトファイルを指定します。 スクリプトファイルには、通常は「{$ORACLE_HOME}\RDBMS\ADMIN」下にある「sppurge.sql」を指定してください。 |
|
| 全件削除実行ファイル |
スナップショットをすべて削除するためのスクリプトファイルを指定します。すべてのスナップショットをすべて1度に削除するには、スナップショットの一覧上で右クリックし、「すべてのスナップショットを削除」を選択することで可能です。 スクリプトファイルには、通常は「{$ORACLE_HOME}\RDBMS\ADMIN」下にある「sptrunc.sql」を指定してください。 |
■ STATSPACKレポートの表示
[表示]ボタンを押すと、上記の[レポート出力場所]にレポートが生成され、下部ペインにレポート結果が表示されます。
各項目の意味は以下のとおりです。項目のハイライトされた個所をクリックすることでもポップアップで説明が表示されます。
| 項目名 | 説明 |
|---|---|
| DataBase |
インスタンス名やOracleバージョンなどの基本的な情報を表示します。 |
| HostName |
ホスト名やプラットフォーム、CPU数など、ホスト端末に関する情報を表示します。 |
| Snapshot |
開始・終了スナップショットに関する情報を表示します。 |
| CacheSizes |
データベース・バッファ・キャッシュ等の設定値を確認できます。 |
| LoadProfile |
LoadProfileセクションから、システムの負荷特性が分かります。この項目の情報を定期的に記録し、システム負荷の基準を策定することで、負荷変動を認識できます。 |
| InstanceEfficiencyIndicators |
バッファ・キャッシュ・ヒット率やライブラリ・キャッシュ・ヒット率などの計算結果を表示します。 |
| Top5TimedEvents |
開始・終了スナップショット間で、特に待機時間が長かった待機イベントのTop5が表示され、パフォーマンスにおけるボトルネックの確認を行うことができます。 |
| HostCPU |
ホストCPUに関する情報を表示します。 |
| InstanceCPU |
インスタンスCPUに関する情報を表示します。 |
| MemoryStatistics |
インスタンスCPUに関する情報を表示します。ホストの物理メモリーとSGA,PGAのメモリー使用量、ホストメモリーに対するSGA,PGAのメモリー使用割合を表示します。 |
| TimeModelSystemStats |
ホストの物理メモリーとSGA、PGAのメモリー使用量、ホストメモリーに対するSGA、PGAのメモリー使用割合を表示します。 |
| WaitEvents |
待機イベント情報を表示します。パフォーマンスの悪化の原因分析に使用します。 |
| BackgroundWaitEvents |
バックグラウンド・プロセスの待機イベント情報を表示します。 |
| ForegroundWaitEvents |
フォアグラウンド・プロセスの待機イベント情報を表示します。 |
| WaitEventHistogram |
各待機イベントごとの待機時間を表示します。 |
| SQLorderdbyCPU |
CPU時間が最も長かったSQLと、そのSQL実行におけるパフォーマンス・データが表示されます。 |
| SQLorderedbyElapsedtimeforDB |
処理時間が最も長かったSQLと、そのSQL実行におけるパフォーマンス・データが表示されます。 |
| SQLorderdbyGets |
アクセスブロックの多いSQLと、そのSQL実行におけるパフォーマンス・データが表示されます。 |
| SQLorderdbyReads |
ディスク物理読込みの多いSQLと、そのSQL実行におけるパフォーマンス・データが表示されます。 |
| SQLorderedbyExecutions |
実行回数の多いSQLと、そのSQL実行におけるパフォーマンス・データが表示されます。 |
| SQLorderedbyParseCalls |
解析回数の多いSQLと、そのSQL実行におけるパフォーマンス・データが表示されます。 |
| InstanceActivityStats |
開始・終了スナップショット間のシステム統計情報を表示します。 |
| OSStatistics-detail |
開始・終了スナップショット間のOSの詳細を表示します。 |
| IOStatbyFunction-summary |
I/Oリクエストと割合を表示します。 |
| TablespaceIOStats |
各表領域ごとの物理読込みと物理書き込みの合計数が表示され、ディスクI/Oの集中している表領域を特定できます。 |
| FileIOStats |
各データファイルごとの物理読込みと物理書込みの合計数が表示され、ディスクI/Oの集中しているデータファイルを特定できます。 |
| FileReadHistogramStats |
全てのシングル・ブロック読み取りをファイル別のヒストグラムで示します。 |
| InstanceRecoveryStats |
インスタンス・リカバリで必要なREDOブロック数などの情報を表示します。 |
| MemoryDynamicComponents |
メモリーサイズ変更情報を表示します。 |
| BufferPoolAdvisory |
データベース・バッファ・キャッシュのサイズ設定に関するアドバイスを表示します。SizeforEstimateのサイズに変更した際の、物理的な読込みブロック数の変化を表示します。 |
| BufferPooStatistics |
バッファ・プールごと(DEFAULT,KEEP,RECYCLE,ブロック・サイズごと)のバッファ・キャッシュ・ヒット率などを表示します。 |
| PGA Aggr Target Stats |
開始スナップショットと終了スナップショット作成時点のPGAメモリーの情報を表示します。 |
| PGA Aggr Target Histogram |
各SQL作業領域でoptimalサイズ、onepassサイズ、multipassサイズでの実行が何回されたかを表示します。 |
| PGA Memory Advisory |
PGA_AGGREGATE_TARGETパラメータで指定するPGAのサイズを見積れます。 |
| Process Memory Summary Stats |
PGA割当と使用量を表示します。 |
| Top Process Memory (by component) |
各プロセスに割当てられたメモリー量と使用量を表示します。 |
| Latch Activity |
ラッチ統計が表示され、競合しているラッチを特定できます。 |
| Segments by Logical Reads |
アクセスブロックの多かったセグメントの統計情報を表示します。 |
| Segments by Physical Reads |
物理ブロック読込みの多かったセグメントの統計情報を表示します。 |
| Dictionary Cache Stats |
ディクショナリ・キャッシュの詳細情報を表示します。 |
| Library Cache Activity |
ライブラリ・キャッシュの統計を表示します。 |
| Rule Sets |
ルール・セットに関する情報を表示します。 |
| Shared Pool Advisory |
V$SHARED_POOL_ADVICEビューの情報をもとに、共有プールのサイズ設定に関するアドバイスを提供します。 |
| SGA Target Advisory |
V$SGA_TARGET_ADVICEビューの情報をもとに、共有プールのサイズ設定に関するアドバイスを提供します。 |
| SGA Memory Summary |
SGAのサマリー情報を表示します。 |
| SGA breakdown difference |
SGA内の各領域のサイズを詳細に表示します。 |
| SQL Memory Statistics |
カーソルのメモリー使用量を表示します。 |
| init.ora Parameters |
デフォルト値以外に設定された初期化パラメータを表示します。 |