TOP
>
サーバ構築・運用
> SQL実行数
Linux+DB2のパフォーマンスチューニング
第9回:稼動情報からボトルネックを探し出す
著者:
日本アイ・ビー・エム 中坪 宏明
2007/1/10
前のページ
1
2
3
4
次のページ
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については、そればかりでなく、実行時間の遅延も大きく目立つことになります。パッケージキャッシュの大きさを調整して、ヒット率を高く保つようにします。
前のページ
1
2
3
4
次のページ
著者プロフィール
日本アイ・ビー・エム株式会社 中坪 宏明
インフォメーション・マネジメント・テクニカル・セールス所属
DB2の技術支援(設計支援、パフォーマンス・チューニング、障害解決支援、案件サポートなど)を10年以上実施している。Linuxをはじめとして各オペレーティングシステムおよびハードウェアとの組み合わせでの機能検証および性能検証も実施している。
INDEX
第9回:稼動情報からボトルネックを探し出す
主な稼動情報の取得
バッファプール〜先読み情報
SQL実行数
カタログ・キャッシュ