Hitachi

Hitachi Advanced Data Binder AP開発ガイド


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の関係

このオペランドに適用される値

指定あり

CGVSV

SVV

CGV※1

CGVVSV

VCGV

V

SVCGV

VSV

V

SVVCGV

SV※1

CGVV

CGVなし※2

VSV

V

SVV

SV※1

指定なし

CNV

(凡例)

VsetHADBSQLMaxRthdNumメソッドの指定値

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の関係

このオペランドに適用される値(単位:メガバイト)

指定あり

SVV

SV※1

VSV

V

指定なし

CNV

(凡例)

VsetHADBSQLHashTblSizeメソッドの指定値

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文の実行時間の短縮に関するチューニングを参照してください。

このオペランドの規則を次に示します。

  1. クライアント定義の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オペランドの値が,サーバ定義の同オペランドの値より大きい場合は,サーバ定義の値が仮定されるため,ご注意ください。

  2. 次の条件を満たす場合は,クライアント定義のadb_sql_exe_hashflt_area_sizeオペランドの値ではなく,サーバ定義の同オペランドの値が適用されます。

    ABまたは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の関係

このオペランドに適用される値(単位:メガバイト)

指定あり

SVV

SV※1

VSV

V

指定なし

SV < ↑HTV÷10↑

SV

HTV÷10↑ ≦ SV

HTV÷10↑

HTVの指定なし※2

CNV

(凡例)

VsetHADBSQLHashFltSizeメソッドの指定値

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メソッドを実行してください。