14.6 ハッシュグループ化領域サイズの見直しによるSQL文の実行時間の短縮に関するチューニング
ここでは,次に示すオペランドに指定したハッシュグループ化領域サイズの見直しによる,SQL文の実行時間を短縮する方法について説明します。
-
サーバ定義のadb_sql_exe_hashgrp_area_sizeオペランド
-
クライアント定義のadb_sql_exe_hashgrp_area_sizeオペランド
ローカルハッシュグループ化が適用されるSQL文を実行する場合に,ハッシュグループ化領域サイズを大きくすると,SQL文の実行時間を短縮できることがあります。
手順
-
ハッシュグループ化領域の領域不足が発生した処理の有無を確認する
SQLトレース情報に出力された「アクセスパスの統計情報」を確認してください。アクセスパスの統計情報に出力された「ハッシュグループ化領域に関する情報」のうち,次に示す出力項目にYがあるかどうかを確認してください。
-
Hashgrp_area_shortage(ハッシュグループ化領域の領域不足の発生有無)
もし,Yがあった場合で,かつローカルハッシュグループ化の処理がある場合は,手順2.に進んでください。
-
-
adb_sql_exe_hashgrp_area_sizeオペランドの指定値を見直す
手順1.で,ハッシュグループ化領域の領域不足が発生したローカルハッシュグループ化の処理がある場合は,ハッシュグループ化領域内で処理できなかったデータを,作業表に格納して処理している可能性があります。そのため,SQL文の実行時間が長くなっているおそれがあります。
この場合,手順1.で確認したHashgrp_area_shortageがYとなっているすべてのローカルハッシュグループ化の処理について,「アクセスパスの統計情報」に出力された「ハッシュグループ化領域に関する情報」のうち,次に示す出力項目を確認してください。
-
Hashgrp_area_sufficient_size(ハッシュグループ化領域で領域不足が発生しない十分な領域サイズ)
そして,出力された値のうち,最大値以上の値を,サーバ定義またはクライアント定義のadb_sql_exe_hashgrp_area_sizeオペランドに指定してください。ローカルハッシュグループ化が適用されるSQL文の実行時間を短縮できることがあります。
- 重要
-
adb_sql_exe_hashgrp_area_sizeオペランドの指定値を変更した場合,必ずHADBサーバのメモリ所要量を再見積もりしてください。HADBサーバのメモリ所要量の見積もりについては,「6.3 HADBサーバのメモリ所要量の見積もり」を参照してください。
-
-
サーバ定義またはクライアント定義を変更する
サーバ定義またはクライアント定義のadb_sql_exe_hashgrp_area_sizeオペランドの指定値を大きくしてください。
-
サーバ定義を変更する場合
adbstopコマンドでHADBサーバをいったん終了してください。そのあとに,サーバ定義を変更し,adbstartコマンドでHADBサーバを開始してください。
-
クライアント定義を変更する場合
マニュアルHADB AP開発ガイドのクライアント定義変更時の注意事項で説明している手順に従ってクライアント定義を変更してください。
-
-
SQL文を再実行する
SQL文を再実行して,SQL文の実行時間が短縮されるかどうかを確認してください。
- メモ
-
-
アクセスパスの統計情報に出力された「ハッシュグループ化領域に関する情報」については,「10.11.3 アクセスパスの統計情報の出力例と出力項目」の「(2) アクセスパスの統計情報に出力される項目」の「(d) ハッシュグループ化領域に関する情報」を参照してください。
-
サーバ定義のadb_sql_exe_hashgrp_area_sizeオペランドについては,「7.2.2 性能に関するオペランド(set形式)」のadb_sql_exe_hashgrp_area_sizeオペランドを参照してください。
-
クライアント定義adb_sql_exe_hashgrp_area_sizeオペランドについては,マニュアルHADB AP開発ガイドの性能に関するオペランドを参照してください。
-