13.9 表定義プールサイズの見直しによるSQL文の実行時間の短縮に関するチューニング
ここでは,次に示すオペランドに指定した表定義プールサイズの見直しによる,SQL文の実行時間を短縮する方法について説明します。
-
サーバ定義のadb_sql_tbldef_cache_sizeオペランド
表定義プールサイズを大きくすると,SQL文の実行時間を短縮できることがあります。表定義プールサイズの大きさが適切かどうかを確認して変更する手順を次に示します。
手順
-
adbstatコマンドを実行して,HADBサーバの統計情報を取得する
HADBサーバの統計情報に,表定義プールに関する情報が出力されます。次の情報を確認してください。
-
Tbldef_req_cnt(表定義情報の取得要求回数)
表定義情報の取得要求回数が出力されます。
-
Tbldef_access_cnt(ディクショナリ表からの表定義情報の取得回数)
表定義プール内で該当の表定義情報が取得できないため,ディクショナリ表から表定義情報を取得した回数が出力されます。
-
Tbldef_cache_access_cnt(表定義プールからの表定義情報の取得回数)
表定義プール内で該当の表定義情報を取得した回数が出力されます。
-
Tbldef_cache_register_cnt(表定義プールへの表定義情報の登録回数)
表定義プールに表定義情報を登録した回数が出力されます。
-
Tbldef_cache_sweep_cnt(表定義プールからの表定義情報の掃き出し回数)
表定義プールから表定義情報を掃き出した回数が出力されます。
-
-
表定義情報のヒット率を確認する
次に示す計算式で,表定義情報のヒット率を求めてください。計算の結果,ヒット率が80%以下の場合は,サーバ定義のadb_sql_tbldef_cache_sizeオペランドの指定値を大きくしてください。
表定義情報のヒット率(%) = (A ÷ B) × 100
A:Tbldef_cache_access_cnt(表定義プールからの表定義情報の取得回数)
B:Tbldef_req_cnt(表定義情報の取得要求回数)
-
Tbldef_cache_sweep_cnt(表定義プールからの表定義情報の掃き出し回数)を確認する
表定義プールからの表定義情報の掃き出し回数が多い場合は,サーバ定義のadb_sql_tbldef_cache_sizeオペランドの指定値を大きくしてください。
-
HADBサーバを終了する
adbstopコマンドを実行して,HADBサーバを終了してください。
-
サーバ定義を変更する
サーバ定義のadb_sql_tbldef_cache_sizeオペランドの指定値を大きくしてください。
-
HADBサーバを開始する
adbstartコマンドを実行して,HADBサーバを開始してください。
- メモ
-
表定義プール,およびサーバ定義のadb_sql_tbldef_cache_sizeオペランドについては,「7.2.2 性能に関するオペランド(set形式)」のadb_sql_tbldef_cache_sizeオペランドを参照してください。