モニタリングで利用するツール
今回からは、SQLチューニングについて解説していきますが、まずはSQLの実行状態のモニタリングについて説明します。モニタリングの際に使うツールは、「第8回:DB2をチューニングするツール群」で解説したツールの中から以下のものを取り上げます。
- 動的SQLスナップショット
- アクティビティー・モニター
- db2batchベンチマーク・ツール
- ステートメント・イベント・モニター
- Performance Expert
表1にあげたツールは、取得できる内容から次のように大きく2種類に分類できます。
| 確認ツール/ コマンド |
確認項目 | 確認のポイント |
|---|---|---|
| 動的SQLスナップショット | ||
| アクティビティー・モニター | SQLごとの実行合計 での特徴 |
過去の実行記録からCPU時間、ソート処理状況、バッファープールのヒット率、読み込み行数、更新行数などの合計値を確認 |
| Performance Expert | ||
| db2batch | 個々のSQL実行処理の特徴 | 1つ1つのSQLの実行ごとに、同上の内容を確認 |
| ステートメント・イベント・モニター |
今回は、「動的SQLスナップショト」および「アクティビティー・モニター」について説明します。
動的SQLスナップショット
DB2は動的なSQLを処理する際に、作成したアクセス・プランをパッケージ・キャッシュという内部メモリに保管します。その際に、SQLの実行状 況についての様々な情報を記録し、これもパッケージ・キャッシュに保管します。動的SQLスナップショットは、パッケージ・キャッシュからそれらの情報を 取り出すツールです。
取得したい情報に応じて、あらかじめモニター・スイッチ(STATEMENT、BUFFERPOOLなど)をONにしておく必要があります。また、パッケージ・キャッシュはサイズおよびSQL数によっては、すべての情報を保管することができません。
できるだけ多くのSQL情報を得るには、パッケージ・キャッシュ・サイズを大きくする、あるいは動的SQLスナップショットの取得頻度をあげること を検討しなければなりません。パッケージ・キャッシュがどれだけ効率的に利用されているかは、データベース・スナップショットにて、パッケージ・キャッ シュ・ヒット率を計算することで確認できます。
では実際に情報を取得してみます。情報を取得するには次のようにコマンドを入力します。
db2 "connect to データベース名"
db2 "get snapshot for dynamic sql on データベース名"
上記のコマンドを実行すると、次のような結果があらわれます。
