Linux+DB2のパフォーマンスチューニング 9

SQL実行数

SQL実行数

   データベース・スナップショットでは、SQL実行数に関して、以下の情報を取得することができます。

  • コミット・ステートメント試行(累積値)
  • ロールバック・ステートメント試行(累積値)
  • 動的ステートメント試行(累積値)
  • 静的ステートメント試行(累積値)
  • 失敗したステートメント操作(累積値)
  • Select SQLステートメント実行(累積値)
  • Update/Insert/Deleteステートメント実行(累積値)
  • DDLステートメント実行(累積値)
表9:取得できるSQL実行数の情報

   ここでは、失敗したステートメント数が多くないか、ロールバックが多くないかなどについて確認します。また普段より、これらの情報とLinuxでの 資源利用情報を、対象アプリケーションの性能情報として記録しておき、パフォーマンス・チューニングが必要な状況と比較します。

SQLステートメント情報

   動的SQLスナップショットで、SQLステートメント自体の記録と、ステートメントごとの情報を取得することができます。

   例えば、SQLの実行数、コンパイル数(最適化処理の回数)、バッファープールの論理・物理I/O、実行時間、CPU時間、といった情報を取得することができます。この項目については、後続の回で、詳しく説明する予定です。

ロギング

   データベース・スナップショットでは、ロギングに関して、以下の情報を得ることができます。


  • データベースで使用されるログ・スペース(バイト、現在値)
  • 2次ログ・スペース最大使用量(バイト、現在値)
  • 合計ログ・スペース最大使用量(バイト、現在値)
  • 現在割り振られている2次ログ(現在値)
  • ログ・ページ読み取り(累積値)
  • ログ読み取り時間(sec.ns、累積値)
  • ログ・ページ書き込み(累積値)
  • ログ書き込み時間(sec.ns、累積値)
  • 書き込みログIOの数(累積値)
  • 読み取りログIOの数(累積値)
  • 部分ページ・ログIOの数IO(累積値)
  • ログ・バッファ・フルの回数(累積値)
表10:取得できるロギングに関する情報

   ログ・スペース使用量を確認して、ログ・フルにならないように十分大きなログを用意する必要があります。また、ログの書き込み数と書き込み時間か ら、1回のログの書き込みにかかる時間を計算し、ディスク性能と照らしあわせて、十分な性能がでているかを確認します。なお、ログのI/Oは、シーケン シャルですので、ディスクのシーケンシャルI/Oの性能と比較する必要があります。

   ログの書き出し時間が遅い場合には、他のI/O処理と競合している可能性が高いので、他のI/O対象を別の物理ディスクへ移動させるなどの対応を検討します。

パッケージ・キャッシュ

   データベース・スナップショットにて、以下の情報を得ることができます。


  • パッケージ・キャッシュ検索(累積値)
  • パッケージ・キャッシュ挿入(累積値)
  • パッケージ・キャッシュ・オーバーフロー(累積値)
  • パッケージ・キャッシュ最高水準点(バイト、水準値)
表11:取得できるパッケージ・キャッシュに関する情報

   ヒット率は次の式で計算できます。


パッケージ・キャッシュのヒット率の計算式
図2:パッケージ・キャッシュのヒット率の計算式

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

この記事をシェアしてください

人気記事トップ10

人気記事ランキングをもっと見る