2.2.3 性能に関するオペランド
- ●adb_clt_fetch_size = FETCH処理時の一括送信行数
-
〜〈整数〉((1〜65,535))《1,024》
1回のFETCH処理で,HADBサーバからHADBクライアントに送信する検索結果の行数を指定します。
このオペランドの指定値を大きくすると,1回のFETCH処理で送信する結果行数が多くなるため性能向上が見込めますが,その分メモリが必要になります。
- ●adb_dbbuff_wrktbl_clt_blk_num = ローカル作業表用バッファのページ数
-
〜〈整数〉((5〜100,000,000))《サーバ定義のadb_dbbuff_wrktbl_clt_blk_numの値》
ローカル作業表用バッファのページ数を指定します。
通常,このオペランドは指定不要です。ローカル作業表を作成するSQL文の実行時間を短縮したい場合に,このオペランドを指定してください。詳細については,マニュアルHADB システム構築・運用ガイドのチューニングのバッファの見直しによるSQL文の実行時間の短縮に関するチューニングを参照してください。
このオペランドの指定値の見積もりについては,マニュアルHADB システム構築・運用ガイドのローカル作業表用バッファのページ数の見積もりを参照してください。
留意事項を次に示します。
-
このオペランドと,サーバ定義adb_dbbuff_wrktbl_clt_blk_numオペランドを両方指定した場合は,このオペランドの指定値が優先されます。
-
このオペランドで指定したバッファは,SQL処理リアルスレッドごとに,ローカル作業表を作成するSQL文を実行したときだけ使用されます。ローカル作業表とは,リアルスレッドごとに作成される,リアルスレッド固有の作業表です。そのため,HADBサーバはリアルスレッドごとにこのオペランドで指定したページ数分のローカル作業表バッファを確保します。ローカル作業表を作成するSQL文については,「5.10.2 SQLを実行した場合に作成される作業表について」を参照してください。
-
このオペランドの指定を適用したコネクションについては,ローカル作業表用バッファのページ数をadbmodbuffコマンドで変更できません。
-
コネクションごとに適用されているローカル作業表用バッファのページ数は,adbls -d lbufコマンドで確認できます。
-
- ●adb_sql_exe_max_rthd_num = 最大SQL処理リアルスレッド数
-
〜〈整数〉((0〜4,096))《サーバ定義のadb_sql_exe_max_rthd_numの値,またはグループで使用できる処理リアルスレッドの最大数》
SQL文の実行時に使用する処理リアルスレッド数の最大値を指定します。
サーバ定義のadb_sql_exe_max_rthd_numオペランドで指定した,最大SQL処理リアルスレッド数を変更する場合にこのオペランドを指定します。
このオペランドを指定する場合は,マニュアルHADB システム構築・運用ガイドのサーバ定義の設計のサーバ定義のオペランドの内容の性能に関するオペランド(set形式)にあるadb_sql_exe_max_rthd_numオペランドの説明を参照してください。
- ■クライアントグループ機能を使用していない場合
-
-
このオペランドを省略した場合,サーバ定義のadb_sql_exe_max_rthd_numオペランドの指定値が仮定されます。
-
サーバ定義のadb_sql_exe_max_rthd_numオペランドの指定値より大きい値をこのオペランドに指定した場合,このオペランドの指定は無視されます。このとき,サーバ定義のadb_sql_exe_max_rthd_numオペランドの指定値が仮定されます。
-
- ■クライアントグループ機能を使用している場合
-
-
このオペランドを省略した場合,グループで使用できる処理リアルスレッドの最大数が仮定されます。
-
グループで使用できる処理リアルスレッドの最大数より大きい値をこのオペランドに指定した場合,このオペランドの指定は無視されます。このとき,グループで使用できる処理リアルスレッドの最大数が仮定されます。
クライアントグループ機能については,マニュアルHADB システム構築・運用ガイドのクライアントグループ機能を参照してください。
-
- ■JDBCドライバのsetHADBSQLMaxRthdNumメソッドとの関係
-
setHADBSQLMaxRthdNumメソッドで最大SQL処理リアルスレッド数を指定できます。
setHADBSQLMaxRthdNumメソッドの指定と,このオペランドに適用される値の関係について次の表に示します。
setHADBSQLMaxRthdNumメソッドについては,「8.3.37 setHADBSQLMaxRthdNum(int rthdNum)」を参照してください。
setHADBSQLMaxRthdNumメソッドの指定
SVとCGVの関係
V,SV,およびCGVの関係
このオペランドに適用される値
指定あり
CGV < SV
SV < V
CGV※1
CGV < V ≦ SV
V ≦ CGV
V
SV ≦ CGV
V ≦ SV
V
SV < V ≦ CGV
SV※1
CGV < V
CGVなし※2
V ≦ SV
V
SV < V
SV※1
指定なし
-
-
CNV
- (凡例)
-
V:setHADBSQLMaxRthdNumメソッドの指定値
SV:サーバ定義の値※3
CGV:クライアントグループ機能を使用している場合で,グループで使用できる処理リアルスレッド数の最大値
CNV:HADBサーバへのコネクト時に決定される最大SQL処理リアルスレッド数※4
-:条件なし
- 注※1
-
setHADBSQLMaxRthdNumメソッドの指定値を無効にします。このとき,無効にしたことを知らせるKFAA41106-Wメッセージが出力されます。
- 注※2
-
クライアントグループ機能を使用していない場合を意味します。
- 注※3
-
HADBサーバの開始時に決定される最大SQL処理リアルスレッド数です。サーバ定義のadb_sql_exe_max_rthd_numオペランドの指定有無や,処理リアルスレッド数との大小関係などから決定される値です。詳細については,マニュアルHADB システム構築・運用ガイドの性能に関するオペランド(set形式)のadb_sql_exe_max_rthd_numオペランドの説明を参照してください。
- 注※4
-
クライアント定義のadb_sql_exe_max_rthd_numオペランドの指定有無,サーバ定義のadb_sql_exe_max_rthd_numオペランドの指定値,クライアントグループ機能のグループで使用できる処理リアルスレッドの最大値などとの大小関係から決定される値です。
- 重要
-
HADBサーバは,SQL文の前処理時にこのオペランドの値を参照します。そのため,setHADBSQLMaxRthdNumメソッドで最大SQL処理リアルスレッド数を指定する場合は,SQL文を実行するStatementオブジェクトまたはPreparedStatementオブジェクトを生成する前にsetHADBSQLMaxRthdNumメソッドを実行してください。
- ●adb_sql_exe_hashgrp_area_size = ハッシュグループ化領域サイズ
-
〜〈整数〉((0,4〜1,000,000))《サーバ定義のadb_sql_exe_hashgrp_area_sizeの値》(単位:キロバイト)
ハッシュグループ化領域の大きさをキロバイト単位で指定します。
サーバ定義のadb_sql_exe_hashgrp_area_sizeオペランドで指定した,ハッシュグループ化領域サイズを変更する場合にこのオペランドを指定します。
このオペランドを指定する場合は,マニュアルHADB システム構築・運用ガイドのサーバ定義の設計のサーバ定義のオペランドの内容の性能に関するオペランド(set形式)にあるadb_sql_exe_hashgrp_area_sizeオペランドの説明を参照してください。
- ●adb_sql_exe_hashtbl_area_size = ハッシュテーブル領域サイズ
-
〜〈整数〉((0〜4,194,304))《サーバ定義のadb_sql_exe_hashtbl_area_sizeの値》(単位:メガバイト)
ハッシュテーブル領域サイズをメガバイト単位で指定します。
サーバ定義のadb_sql_exe_hashtbl_area_sizeオペランドで指定した,ハッシュテーブル領域サイズを変更する場合にこのオペランドを指定します。
このオペランドを指定する場合は,マニュアルHADB システム構築・運用ガイドのサーバ定義の設計のサーバ定義のオペランドの内容の性能に関するオペランド(set形式)にあるadb_sql_exe_hashtbl_area_sizeオペランドの説明を参照してください。
なお,このオペランドの指定値がサーバ定義のadb_sql_exe_hashtbl_area_sizeオペランドの指定値より大きい場合は,サーバ定義の指定値が仮定されます。また,このオペランドを省略した場合も,サーバ定義の指定値が仮定されます。
- ■JDBCドライバのsetHADBSQLHashTblSizeメソッドとの関係
-
setHADBSQLHashTblSizeメソッドでハッシュテーブル領域サイズを指定できます。
setHADBSQLHashTblSizeメソッドの指定と,このオペランドに適用される値の関係について次の表に示します。
setHADBSQLHashTblSizeメソッドについては,「8.3.36 setHADBSQLHashTblSize(int areaSize)」を参照してください。
setHADBSQLHashTblSizeメソッドの指定
VとSVの関係
このオペランドに適用される値(単位:メガバイト)
指定あり
SV < V
SV※1
V ≦ SV
V
指定なし
-
CNV
- (凡例)
-
V:setHADBSQLHashTblSizeメソッドの指定値
SV:サーバ定義の値※2
CNV:HADBサーバへのコネクト時に決定されるハッシュテーブル領域サイズ※3
-:条件なし
- 注※1
-
setHADBSQLHashTblSizeメソッドの指定値を無効にします。このとき,無効にしたことを知らせるKFAA41106-Wメッセージが出力されます。
- 注※2
-
HADBサーバの開始時に決定されるハッシュテーブル領域サイズです。サーバ定義のadb_sql_exe_hashtbl_area_sizeオペランドの指定値です。サーバ定義のadb_sql_exe_hashtbl_area_sizeオペランドを省略した場合は,その省略値です。
- 注※3
-
クライアント定義のadb_sql_exe_hashtbl_area_sizeオペランドの指定有無や,サーバ定義のadb_sql_exe_hashtbl_area_sizeオペランドとクライアント定義のadb_sql_exe_hashtbl_area_sizeオペランドとの大小関係から決定される値です。
- 重要
-
HADBサーバは,SQL文の前処理時にこのオペランドの値を参照します。そのため,setHADBSQLHashTblSizeメソッドでハッシュテーブル領域サイズを指定する場合は,SQL文を実行するStatementオブジェクトまたはPreparedStatementオブジェクトを生成する前にsetHADBSQLHashTblSizeメソッドを実行してください。
- ●adb_sql_exe_hashflt_area_size = ハッシュフィルタ領域サイズ
-
〜〈整数〉((0〜419,430))(単位:メガバイト)
ハッシュフィルタ領域サイズをメガバイト単位で指定します。
通常はこのオペランドを省略してください。ハッシュフィルタが適用されるSQL文の実行時間を短縮したい場合に,このオペランドを指定してください。
このオペランドを指定する場合は,マニュアルHADB システム構築・運用ガイドのサーバ定義の設計のサーバ定義のオペランドの内容の性能に関するオペランド(set形式)にあるadb_sql_exe_hashflt_area_sizeオペランドの説明を参照してください。
このオペランドの指定値のチューニング方法については,マニュアルHADB システム構築・運用ガイドのハッシュフィルタ領域サイズの見直しによるSQL文の実行時間の短縮に関するチューニングを参照してください。
このオペランドの規則を次に示します。
-
クライアント定義のadb_sql_exe_hashtbl_area_sizeオペランドの指定有無によって,このオペランドを省略したときの仮定値が変わります。
-
adb_sql_exe_hashtbl_area_sizeオペランドを指定している場合
↑クライアント定義のadb_sql_exe_hashtbl_area_sizeオペランドの値÷10↑
-
adb_sql_exe_hashtbl_area_sizeオペランドを指定していない場合
サーバ定義のadb_sql_exe_hashflt_area_sizeオペランドの値
なお,クライアント定義のadb_sql_exe_hashtbl_area_sizeオペランドの値が,サーバ定義の同オペランドの値より大きい場合は,サーバ定義の値が仮定されるため,ご注意ください。
-
-
次の条件を満たす場合は,クライアント定義のadb_sql_exe_hashflt_area_sizeオペランドの値ではなく,サーバ定義の同オペランドの値が適用されます。
A < BまたはC
A:サーバ定義のadb_sql_exe_hashflt_area_sizeオペランドの指定値
B:クライアント定義のadb_sql_exe_hashflt_area_sizeオペランドの指定値
C:クライアント定義のadb_sql_exe_hashflt_area_sizeオペランドを省略したときの仮定値
- ■JDBCドライバのsetHADBSQLHashFltSizeメソッドとの関係
-
setHADBSQLHashFltSizeメソッドでハッシュフィルタ領域サイズを指定できます。setHADBSQLHashFltSizeメソッドの指定と,このオペランドに適用される値の関係について次の表に示します。
setHADBSQLHashFltSizeメソッドについては,「8.3.35 setHADBSQLHashFltSize(int areaSize)」を参照してください。
setHADBSQLHashFltSizeメソッドの指定
VとSVの関係
HTVとSVの関係
このオペランドに適用される値(単位:メガバイト)
指定あり
SV < V
-
SV※1
V ≦ SV
-
V
指定なし
-
SV < ↑HTV÷10↑
SV
↑HTV÷10↑ ≦ SV
↑HTV÷10↑
HTVの指定なし※2
CNV
- (凡例)
-
V:setHADBSQLHashFltSizeメソッドの指定値
SV:サーバ定義の値※3
HTV:ハッシュテーブル領域サイズ※4
CNV:HADBサーバへのコネクト時に決定されるハッシュフィルタ領域サイズ※5
-:条件なし
- 注※1
-
setHADBSQLHashFltSizeメソッドの指定値を無効にします。このとき,無効にしたことを知らせるKFAA41106-Wメッセージが出力されます。
- 注※2
-
setHADBSQLHashTblSizeメソッドの指定がないことを意味しています。
- 注※3
-
HADBサーバの開始時に決定されるハッシュフィルタ領域サイズです。サーバ定義のadb_sql_exe_hashflt_area_sizeオペランドの指定有無や,処理リアルスレッド数との大小関係などから決定される値です。詳細については,マニュアルHADB システム構築・運用ガイドの性能に関するオペランド(set形式)のadb_sql_exe_hashflt_area_sizeオペランドの説明を参照してください。
- 注※4
-
setHADBSQLHashTblSizeメソッドを指定した場合に,最終的に適用されたハッシュテーブル領域サイズです。
- 注※5
-
クライアント定義のadb_sql_exe_hashflt_area_sizeオペランドの指定有無や,サーバ定義のadb_sql_exe_hashflt_area_sizeオペランドとクライアント定義のadb_sql_exe_hashflt_area_sizeオペランドとの大小関係などから決定される値です
- 重要
-
HADBサーバは,SQL文の前処理時にこのオペランドの値を参照します。そのため,setHADBSQLHashFltSizeメソッドでハッシュフィルタ領域サイズを指定する場合は,SQL文を実行するStatementオブジェクトまたはPreparedStatementオブジェクトを生成する前にsetHADBSQLHashFltSizeメソッドを実行してください。
-
- ●adb_clt_sql_parallel_exec = {Y|N}
-
当該HADBクライアントからのトランザクションで実行される検索系SQLにSQLパラレル実行機能を適用するかどうかを指定します。
- Y:
-
SQLパラレル実行機能を適用して検索系SQLを実行します。
- N:
-
SQLパラレル実行機能を適用しません。
このオペランドの指定を省略した場合,Nが仮定されます。
- 重要
-
SQLパラレル実行機能が適用されるのは,SQLパラレル実行機能が適用される条件が満たされた場合だけです。条件が満たされなかった場合,このオペランドにYを指定していてもSQLパラレル実行機能は適用されません。SQLパラレル実行機能が適用される条件については,「5.16 SQLパラレル実行機能が適用される条件」を参照してください。
SQL文にSQLパラレル実行指定を指定すると,このオペランドの指定値に関係なくSQLパラレル実行機能を適用して検索系SQLが実行できます。なお,この場合もSQLパラレル実行機能が適用されるのは,SQLパラレル実行機能が適用される条件が満たされたときだけです。
SQLパラレル実行指定とadb_clt_sql_parallel_execオペランドの指定値の関係を次の表に示します。
表2‒1 SQLパラレル実行指定とadb_clt_sql_parallel_execオペランドの指定値の関係 SQLパラレル実行指定
クライアント定義のadb_clt_sql_parallel_execオペランドの指定値
Y
N
検索系SQL文に指定している
○
○
検索系SQL文に指定していない
○
×
- (凡例)
-
○:SQLパラレル実行機能を適用します。
×:SQLパラレル実行機能を適用しません。
SQLパラレル実行指定の指定規則については,マニュアルのHADB SQLリファレンスのSELECT文の指定形式および規則を参照してください。