11.5 ハッシュテーブル領域サイズの見直しによるSQL文の実行時間の短縮に関するチューニング
ここでは,次に示すオペランドに指定したハッシュテーブル領域サイズの見直しによる,SQL文の実行時間を短縮する方法について説明します。
-
サーバ定義のadb_sql_exe_hashtbl_area_sizeオペランド
-
クライアント定義のadb_sql_exe_hashtbl_area_sizeオペランド
ハッシュテーブル領域を使用する次の処理が適用されるSQL文を実行する場合に,ハッシュテーブル領域サイズを大きくすると,SQL文の実行時間を短縮できることがあります。
-
ハッシュジョイン
-
副問合せのハッシュ実行
-
グローバルハッシュグループ化
手順
-
ハッシュテーブル領域の領域不足が発生した処理の有無を確認する
SQLトレース情報に出力された「アクセスパスの統計情報」を確認してください。アクセスパスの統計情報に出力された「ハッシュテーブル領域に関する情報」のうち,次に示す出力項目がYとなっている処理があるかどうかを確認してください。
-
Hashtbl_area_shortage(ハッシュテーブル領域の領域不足の発生有無)
Yとなっている処理があった場合は,手順2.に進んでください。
-
-
KFAA51130-Wメッセージの出力有無を確認する
手順1.でYとなっている処理がある場合,次の2つを突き合わせてください。
-
該当する処理の「SQL文の実行情報」に出力されるmessage_log_info
-
サーバメッセージログファイル
突き合わせの結果,サーバメッセージログファイルに,KFAA51130-Wメッセージが出力されているかどうかを確認してください。KFAA51130-Wメッセージが出力されている場合は,手順3.に進んでください。
-
-
adb_sql_exe_hashtbl_area_sizeオペランドの指定値を見直す
手順2.でKFAA51130-Wメッセージが出力されている場合は,ハッシュテーブル領域内で処理できなかったデータを,複数回にわたって作業表に格納して処理している可能性があります。そのため,SQL文の実行時間が長くなっているおそれがあります。
この場合,サーバ定義およびクライアント定義のadb_sql_exe_hashtbl_area_sizeオペランドの指定値を大きくしてください。ハッシュテーブル領域を使用する処理が適用されるSQL文の実行時間を短縮できることがあります。
なお,adb_sql_exe_hashtbl_area_sizeオペランドの指定値を変更した場合,必ずHADBサーバのメモリ所要量を再見積もりしてください。HADBサーバのメモリ所要量の再見積もりについては,「6.3.4(2)(c) 変数RTHD_EXESQLSZの求め方」の変数HASHTBL_PROC_SIZEを参照してください。
アクセスパスの統計情報に出力された「ハッシュテーブル領域に関する情報」については,「9.10.3(2)(e) ハッシュテーブル領域に関する情報」を参照してください。
サーバ定義のadb_sql_exe_hashtbl_area_sizeオペランドについては,「7.6.2(2) 性能に関するオペランド(set形式)」のadb_sql_exe_hashtbl_area_sizeオペランドを参照してください。
クライアント定義のadb_sql_exe_hashtbl_area_sizeオペランドについては,マニュアル「HADB AP開発ガイド」の「クライアント定義のオペランドの説明」を参照してください。