11.2.2 グローバル作業表を作成するSQL文の実行時間を短縮する方法
グローバル作業表を作成するSQL文を実行する場合,グローバル作業表用のグローバルバッファのページ数を増やすことで,SQL文の実行時間を短縮できることがあります。
グローバル作業表を作成するSQL文については,マニュアル「HADB AP開発ガイド」の「APの性能向上に関する設計」の「作業表が作成されるSQLを実行する際の考慮点」の「SQLを実行した場合に作成される作業表について」を参照してください。
adbstatコマンドで出力される情報によって,チューニング方法が異なります。
-
グローバルバッファの統計情報
-
SQL文の統計情報
まずは,グローバルバッファの統計情報を確認して,チューニングを行ってください。そのあとで,特定のSQL文の実行時間を短縮したい場合は,SQL文の統計情報を確認して,チューニングを行ってください。
(1) グローバルバッファの統計情報によるグローバル作業表を作成するSQL文の実行時間の短縮
手順
-
グローバルバッファからのファイル書き込み回数を確認する
adbstatコマンドを実行して出力される「グローバルバッファの統計情報」のうち,まず,次に示す情報を確認してください。
-
DBbuff_name(グローバルバッファ名)
DBbuff_nameがADBWRKとなっているグローバルバッファについて,次に示す情報を確認してください。
-
DBbuff_page_write_cnt(グローバルバッファからのファイル書き込み回数)
-
-
adb_dbbuff_wrktbl_glb_blk_numオペランドの指定値を見直す
手順1.で確認したDBbuff_page_write_cntに出力された値が1以上の場合,グローバルバッファからファイルへの書き込みが発生しています。サーバ定義adb_dbbuff_wrktbl_glb_blk_numオペランドの指定値を大きくしたあとで,グローバル作業表を作成するSQL文を再実行してください。そのあとで,手順1.を実施してDBbuff_page_write_cntに出力された値が減っているかどうかを確認してください。
-
手順1.と手順2.を繰り返す
手順1.と手順2.を繰り返して,DBbuff_page_write_cntに出力された値が0になるまで調整すると,グローバル作業表を作成するSQL文の実行時間を短縮できることがあります。
(2) SQL文の統計情報によるグローバル作業表を作成するSQL文の実行時間の短縮
手順
-
グローバルバッファからのファイル書き込み回数を確認する
adbstatコマンドを実行して出力される「SQL文の統計情報」のうち,まず,次に示す情報を確認してください。
-
DBbuff_name(グローバルバッファ名)
DBbuff_nameがADBWRKとなっているグローバルバッファについて,次に示す情報を確認してください。
-
DBbuff_page_write_cnt(グローバルバッファからのファイル書き込み回数)
-
DBbuff_page_put_cnt(グローバルバッファへの書き込み回数)
-
-
adb_dbbuff_wrktbl_glb_blk_numオペランドの指定値を見直す
手順1.で確認したDBbuff_page_write_cntとDBbuff_page_put_cntの関係が,次に示す計算式を満たしている場合,グローバルバッファからファイルへの書き込みが多発しているおそれがあります。
計算式
DBbuff_page_write_cntに出力された値 > DBbuff_page_put_cntに出力された値÷2
計算式を満たしている場合,サーバ定義adb_dbbuff_wrktbl_glb_blk_numオペランドの指定値を大きくしたあとで,グローバル作業表を作成するSQL文を再実行してください。そのあとで,手順1.を実施してDBbuff_page_write_cntに出力された値が,計算式を満たさないことを確認してください。
-
手順1.と手順2.を繰り返す
手順1.と手順2.を繰り返して,DBbuff_page_write_cntに出力された値が計算式を満たさなくなるまで調整すると,グローバル作業表を作成するSQL文の実行時間を短縮できることがあります。