SQL実行数
SQL実行数
データベース・スナップショットでは、SQL実行数に関して、以下の情報を取得することができます。
- コミット・ステートメント試行(累積値)
- ロールバック・ステートメント試行(累積値)
- 動的ステートメント試行(累積値)
- 静的ステートメント試行(累積値)
- 失敗したステートメント操作(累積値)
- Select SQLステートメント実行(累積値)
- Update/Insert/Deleteステートメント実行(累積値)
- DDLステートメント実行(累積値)
ここでは、失敗したステートメント数が多くないか、ロールバックが多くないかなどについて確認します。また普段より、これらの情報とLinuxでの 資源利用情報を、対象アプリケーションの性能情報として記録しておき、パフォーマンス・チューニングが必要な状況と比較します。
SQLステートメント情報
動的SQLスナップショットで、SQLステートメント自体の記録と、ステートメントごとの情報を取得することができます。
例えば、SQLの実行数、コンパイル数(最適化処理の回数)、バッファープールの論理・物理I/O、実行時間、CPU時間、といった情報を取得することができます。この項目については、後続の回で、詳しく説明する予定です。
ロギング
データベース・スナップショットでは、ロギングに関して、以下の情報を得ることができます。
- データベースで使用されるログ・スペース(バイト、現在値)
- 2次ログ・スペース最大使用量(バイト、現在値)
- 合計ログ・スペース最大使用量(バイト、現在値)
- 現在割り振られている2次ログ(現在値)
- ログ・ページ読み取り(累積値)
- ログ読み取り時間(sec.ns、累積値)
- ログ・ページ書き込み(累積値)
- ログ書き込み時間(sec.ns、累積値)
- 書き込みログIOの数(累積値)
- 読み取りログIOの数(累積値)
- 部分ページ・ログIOの数IO(累積値)
- ログ・バッファ・フルの回数(累積値)
ログ・スペース使用量を確認して、ログ・フルにならないように十分大きなログを用意する必要があります。また、ログの書き込み数と書き込み時間か ら、1回のログの書き込みにかかる時間を計算し、ディスク性能と照らしあわせて、十分な性能がでているかを確認します。なお、ログのI/Oは、シーケン シャルですので、ディスクのシーケンシャルI/Oの性能と比較する必要があります。
ログの書き出し時間が遅い場合には、他のI/O処理と競合している可能性が高いので、他のI/O対象を別の物理ディスクへ移動させるなどの対応を検討します。
パッケージ・キャッシュ
データベース・スナップショットにて、以下の情報を得ることができます。
- パッケージ・キャッシュ検索(累積値)
- パッケージ・キャッシュ挿入(累積値)
- パッケージ・キャッシュ・オーバーフロー(累積値)
- パッケージ・キャッシュ最高水準点(バイト、水準値)
ヒット率は次の式で計算できます。

図2:パッケージ・キャッシュのヒット率の計算式
動的SQLは、コンパイル(最適化)された後、その実行計画を、パッケージ・キャッシュに格納します。SQLのコンパイル処理はCPU負荷が高い処 理であるため、このヒット率が落ちてくると、CPU使用率が高くなります。また、実行時間の短いSQLについては、そればかりでなく、実行時間の遅延も大 きく目立つことになります。パッケージキャッシュの大きさを調整して、ヒット率を高く保つようにします。