6.3.4 通常運用時のメモリ所要量の求め方
HADBサーバ開始後,通常運用時(HADBクライアントがHADBサーバに接続するとき,およびSQL文を実行するとき)に,HADBサーバは次に示すメモリを使用します。各メモリの所要量を求めてください。
- ■共有メモリ
-
-
プロセス共通メモリ(PROC_EXECSZ)
-
リアルスレッド固有メモリ(RTHD_EXECSZ)
-
それぞれのメモリ所要量の計算式を次に示します。
(1) プロセス共通メモリの所要量の求め方(通常運用時)
通常運用時のプロセス共通メモリ(PROC_EXECSZ)の所要量は,次の計算式から求めてください。
計算式(単位:キロバイト)
|
|
- 注※
-
マルチノード機能を使用する場合に加算してください。
- 変数の説明
-
-
PROC_CNCTSZ
データベース接続時に使用するプロセス共通メモリ
「6.3.4(1)(a) 変数PROC_CNCTSZの求め方」を参照してください。
-
PROC_TOTALSQLSSZ
SQL前処理時に使用するプロセス共通メモリ
「6.3.4(1)(b) 変数PROC_TOTALSQLSSZの求め方」を参照してください。
-
PROC_EXECSQLSZ
SQL実行時に使用するプロセス共通メモリ
「6.3.4(1)(c) 変数PROC_EXECSQLSZの求め方」を参照してください。
-
PROC_BUFWORK_CTL
作業表使用時に使用するプロセス共通メモリ
「6.3.4(1)(d) 変数PROC_BUFWORK_CTLの求め方」を参照してください。
-
PROC_DEFSQLSZ
定義系SQL実行時に使用するプロセス共通メモリ
「6.3.4(1)(e) 変数PROC_DEFSQLSZの求め方」を参照してください。
-
PROC_IMPORTSZ
adbimportコマンド実行時に使用するプロセス共通メモリ
「6.3.6(1) プロセス共通メモリの所要量の求め方(adbimportコマンド実行時)」を参照して求めてください。
-
PROC_IDXRBLDSZ
adbidxrebuildコマンド実行時に使用するプロセス共通メモリ
「6.3.7(1) プロセス共通メモリの所要量の求め方(adbidxrebuildコマンド実行時)」を参照して求めてください。
-
PROC_GETCOSTSZ
adbgetcstコマンド実行時に使用するプロセス共通メモリ
「6.3.8(1) プロセス共通メモリの所要量の求め方(adbgetcstコマンド実行時)」を参照して求めてください。
-
PROC_DBSTATUSSZ
adbdbstatusコマンド実行時に使用するプロセス共通メモリ
「6.3.9(1) プロセス共通メモリの所要量の求め方(adbdbstatusコマンド実行時)」を参照して求めてください。
-
PROC_MODASZ
adbmodareaコマンド実行時に使用するプロセス共通メモリ
「6.3.12(1) プロセス共通メモリの所要量の求め方(adbmodareaコマンド実行時)」を参照してください。
-
PROC_EXPORTSZ
adbexportコマンド実行時に使用するプロセス共通メモリ
「6.3.10 adbexportコマンド実行時のメモリ所要量の求め方」を参照して求めてください。
-
PROC_MERGCSZ
adbmergechunkコマンド実行時に使用するプロセス共通メモリ
「6.3.13(1) プロセス共通メモリの所要量の求め方(adbmergechunkコマンド実行時)」を参照して求めてください。
-
PROC_UPDSZ
データベース接続後の定義系SQLの初回実行時,および更新系SQLの初回実行時に使用するプロセス共通メモリ
「6.3.4(1)(f) 変数PROC_UPDSZの求め方」を参照して求めてください。
-
PROC_CHGCCMSZ
adbchgchunkcommentコマンド実行時に使用するプロセス共通メモリ
「6.3.14 adbchgchunkcommentコマンド実行時のメモリ所要量の求め方」を参照して求めてください。
-
PROC_CHGCSTSZ
adbchgchunkstatusコマンド実行時に使用するプロセス共通メモリ
「6.3.15 adbchgchunkstatusコマンド実行時のメモリ所要量の求め方」を参照して求めてください。
-
PROC_UPDLISTSZ
マルチノード機能適用時に使用するプロセス共通メモリ
「6.3.4(1)(g) 変数PROC_UPDLISTSZの求め方」を参照してください。
-
PROC_ARCCKSZ
adbarchivechunkコマンド実行時に使用するプロセス共通メモリ
「6.3.16(1) プロセス共通メモリの所要量の求め方(adbarchivechunkコマンド実行時)」を参照してください。
-
PROC_UNARCCKSZ
adbunarchivechunkコマンド実行時に使用するプロセス共通メモリ
「6.3.17(1) プロセス共通メモリの所要量の求め方(adbunarchivechunkコマンド実行時)」を参照してください。
-
(a) 変数PROC_CNCTSZの求め方
変数PROC_CNCTSZは,データベース接続時に加算します。次に示す計算式から求めてください。
計算式(単位:キロバイト)
|
|
変数の説明
- BUFCNCT:コネクションバッファ
-
次に示す計算式から求めてください。
- 計算式(単位:キロバイト)
BUFCNCT= max_users
max_users:サーバ定義adb_sys_max_usersオペランドの指定値
- SQLWQUE:SQL文実行待ちキュー
-
次に示す計算式から求めてください。
- 計算式(単位:キロバイト)
SQLWQUE= ↑8×max_users÷1,024↑
max_users:サーバ定義adb_sys_max_usersオペランドの指定値
- SQLACTB:SQL文テーブルアクセス情報
-
次に示す計算式から求めてください。
計算式(単位:キロバイト)
max_table_num:対象のコネクションで実行する各SQL文でアクセスする表数の最大値
- RTHDLOG
-
処理リアルスレッド用ログ管理領域
次に示す計算式から求めてください。
計算式(単位:キロバイト)
- rthd_num
-
サーバ定義adb_sys_rthd_numオペランドの指定値
(b) 変数PROC_TOTALSQLSSZの求め方
変数PROC_TOTALSQLSSZは,SQLの前処理時に加算します。次に示す計算式から求めてください。
- 計算式(単位:キロバイト)
PROC_TOTALSQLSSZ= MAXSQLWRK+TOTALSQLSCT+PREDICSZ
変数の説明
- MAXSQLWRK
-
1トランザクション中に,SQLの前処理で使用される作業領域
次に示す計算式から求めてください。
- 計算式(単位:キロバイト)
MAXSQLWRK= (max_sql(SQLPSZ)+20)×max_users
- max_sql()
-
SQLPSZの計算結果から最大値を代入します。
- max_users
-
サーバ定義adb_sys_max_usersオペランドの指定値
- SQLPSZ
-
SQL文の前処理で使用される作業領域
次に示す計算式から求めてください。
- 計算式(単位:キロバイト)
-
- tbln
-
FROM句に指定した表数
- gbycoln
-
GROUP BY句に指定した列の数
- obysorn
-
ORDER BY句に指定したソートキーの数
- updsetn
-
UPDATE文のSET句の数
- inscolnamn
-
INSERT文の挿入対象列の数
- identn
-
識別子の数
- drvt_num
-
導出表の個数
- max_query_spec
-
1SQL文に指定できる問合せ指定の最大数
- vtbl
-
1SQL文中のビュー表の数
- vquery_num
-
ビュー定義に指定した問合せ指定の数
- vjotbl_num
-
ビュー定義に指定した結合表の数
- vtbl_num
-
ビュー定義に指定した実表の数
- jointbln
-
結合表の数
- subqun
-
副問合せの数
- queryn
-
問合せ指定の数
- col_num
-
選択式の数
- pwl
-
WITH句の個数
- drvtbln
-
FROM句に指定した導出表の数
- drvcolnum
-
導出表の列数
- fmt_len
-
スカラ関数CONVERTの書式サイズ
- drvtblnum
-
導出表の数
- viewcolnum
-
ビュー表の列数
- viewtblnum
-
ビュー表の数
- qurycolnum
-
問合せ名の列数
- qurytblnum
-
問合せ名の数
- charnum
-
1SQL文のバイト数
- vcol_num
-
ビュー定義に指定した列の数
- vwindow_num
-
ビュー定義に指定したウィンドウ関数の数
- vgroup_num
-
ビュー定義に指定したGROUP BY句の数
- vsetf_num
-
ビュー定義に指定した集合関数の数
- gbyn
-
GROUP BY句の数
- qexp
-
集合演算の数
- drvjotblnum
-
導出表に指定した結合表の数
- drvquerynum
-
導出表に指定した問合せの数
- drvwindownum
-
導出表に指定したウィンドウ関数の数
- drvgroupnum
-
導出表に指定したGROUP BY句の数
- drvsetfnum
-
導出表に指定した集合関数の数
- projn
-
値式の数
- drvtblnum
-
導出表の個数
- max_drvtbln
-
FROM句に指定できる表数の最大値
- fjoin_drvquerynum
-
FULL OUTER JOIN中に含まれる導出表に指定した問合せの数
- fjoin_tbln
-
FULL OUTER JOIN中の表参照の数
- fjoin_tblcoln
-
FULL OUTER JOIN中の表参照の列数
- winfuncn
-
ウィンドウ関数の数
- query_expn
-
問合せ式の数
- setfuncn
-
集合関数の数(AVGの場合は+2とします)
- drv_setopnum
-
導出表に指定した集合演算の数
- TOTALSQLSCT
-
1トランザクション中で作成される,SQL文の前処理の前処理結果管理領域の合計
なお,JDBCドライバからSQL文を実行する場合は,1コネクション内で同時に作成されるSQL文の前処理の前処理結果管理領域の合計となります。
次に示す計算式から求めてください。
- 計算式(単位:キロバイト)
TOTALSQLSCT= sum_sql(SQLPSSZ+SQLSSZ+APATHVIEW)×max_users
- max_users
-
サーバ定義adb_sys_max_usersオペランドの指定値
- sum_sql()
-
変数SQLSSZの計算結果から最大値を代入します。
なお,JDBCドライバからSQL文を実行する場合は,1コネクション内で実行する各SQL文について求めた値のうち,最大値を代入します。
- SQLPSSZ
-
SQL文の前処理時に取得される前処理結果制御領域
次に示す計算式から求めてください。
- 計算式(単位:キロバイト)
SQLPSSZ= ↑184÷1,024↑
- SQLSSZ
-
SQL文の前処理で使用される前処理結果管理領域
次に示す計算式から求めてください。
- 計算式(単位:キロバイト)
-
- tblcoln
-
処理対象表の列数
- tblidxn
-
処理対象表に定義したインデクス数
- tbln
-
FROM句に指定した表の数
- col_num
-
選択式の数
- insvaln
-
挿入値の数
- inscoln
-
挿入列の数
- updcoln
-
更新列の数
- colspen
-
列指定の数
- gbycoln
-
GROUP BY句に指定したグループ化列の数
- operan
-
四則演算の数
- liken
-
LIKE述語の数
- inn
-
IN述語の数
- scafuncn
-
スカラ関数の数
- setfuncn
-
集合関数の数(AVGの場合は+2とします)
- notn
-
NOTの数
- orn
-
ORの数
- param_num
-
?パラメタの数
- sregn
-
日時情報取得関数およびユーザ情報取得関数の総数
- rown
-
ROWの数
- jointbln
-
結合表の数
- inscolnamn
-
挿入対象列の数
- subqun
-
副問合せの数
- ord_num
-
ORDER BY句に指定した列の数
- queryn
-
問合せ指定の数
- logicn
-
AND,ORおよびNOTの論理演算の数
- predn
-
述語の数
- base_num
-
ビュー定義に指定した基表の数
- sel_num
-
ビュー定義に指定した問合せ指定の選択式の数
- pwg
-
ラベル付き間隔の数
- scl
-
列数(列指定の数と,*指定の展開後の列指定の数の総和)
- sgc
-
グループ化列数
- ssk
-
ORDER BY句に指定したソートキーの数
- srw
-
ROWの対象表に含まれるDECIMAL型,TIMESTAMP型の数
- exp_num
-
値式の総数
- sum_view_object()
-
括弧内のものについて,1SQL文内で指定したビュー表のビューオブジェクトサイズの合計値
- view_size
-
ビューオブジェクトのサイズ(ディクショナリ表(実表)のSQL_VIEWS表のVIEW_OBJECT_SIZE列の値)
- qexp_coln
-
集合演算中の問合せ式の列数
- gname_coln
-
グループ化列の列名の数
- default_coln
-
DEFAULT句を指定した列数
- default_n
-
キーワード「DEFAULT」を指定した個数
- act_num
-
CASE式のTHENとELSEの総数
- decode_revn
-
スカラ関数DECODEの返却値の数
- fmt_len
-
スカラ関数CONVERTの書式長
- obysorn
-
ORDER BY句に指定したソート項目の数
- pw_when
-
CASE式に指定したWHENの個数
- projn
-
値式の数
- fulljoin_num
-
SQL文に指定されたFULL OUTER JOINの数
- fj_join_num
-
FULL OUTER JOINに指定された結合表の数
- gbyn
-
GROUP BY句の数
- qexp
-
集合演算の数
- query_expn
-
問合せ式の数
- winfuncn
-
ウィンドウ関数の数
- withlistnum
-
WITHリスト要素の数
- APATHVIEW
-
アクセスパスを表示する際に作成されるアクセスパス情報管理領域
次に示す計算式から求めてください。
- 計算式(単位:キロバイト)
APATHVIEW= ↑((9,728+1,024×scl)×tbln+2,200)÷4,096↑×5
- tbln
-
FROM句に指定した表の数
- scl
-
列数(列指定の数と,*指定の展開後の列指定の数の総和)
- PREDICSZ
-
次に示す値を代入してください。
値(単位:キロバイト)
(c) 変数PROC_EXECSQLSZの求め方
変数PROC_EXECSQLSZは,SQL実行時に加算します。次に示す計算式から求めてください。
計算式(単位:キロバイト)
|
|
- 注※
-
PURGE CHUNK文およびTRUNCATE TABLE文を実行する場合に加算してください。
変数の説明
- TRANSNAP
-
トランザクション情報スナップショット
次に示す計算式から求めてください。
計算式(単位:キロバイト)
- max_users
-
サーバ定義adb_sys_max_usersオペランドの指定値
- RTHDUPDINF
-
処理リアルスレッド更新情報
次に示す計算式から求めてください。
計算式(単位:キロバイト)
- rthd_num
-
サーバ定義adb_sql_exe_max_rthd_numオペランドの指定値
なお,クライアント定義adb_sql_exe_max_rthd_numオペランドを指定した場合は,クライアント定義adb_sql_exe_max_rthd_numオペランドの指定値を代入してください。ただし,クライアント定義adb_sql_exe_max_rthd_numオペランドの指定値が,サーバ定義adb_sql_exe_max_rthd_numオペランドの指定値よりも大きい場合は,サーバ定義adb_sql_exe_max_rthd_numオペランドの指定値を代入してください。
詳細については,「7.6.2(2) 性能に関するオペランド(set形式)」のadb_sql_exe_max_rthd_numオペランドを参照してください。
- DBUPDINF
-
DBエリア,表,インデクス,およびチャンク更新情報
次に示す計算式から求めてください。なお,マルチノード機能を使用するかどうかで,計算式が異なります。
計算式:(単位:キロバイト)
- archive_file_num
-
アーカイブ状態のチャンクに対応しているアーカイブファイル数
adbdbstatusコマンドで「アーカイブ状態のチャンクのサマリ情報」を出力して,「Archive_file_num」を確認してください。「Archive_file_num」については,マニュアル「HADB コマンドリファレンス」の「adbdbstatus(データベースの状態解析)」の「アーカイブ状態のチャンクのサマリ情報で出力される項目」の「アーカイブ状態のチャンクのサマリ情報で出力される項目の一覧」を参照してください。
(d) 変数PROC_BUFWORK_CTLの求め方
変数PROC_BUFWORK_CTLは,作業表使用時に加算します。次に示す計算式から求めてください。
- 計算式(単位:キロバイト)
PROC_BUFWORK_CTL= max_users+rthd_num
- 変数の説明
-
max_users:サーバ定義adb_sys_max_usersオペランドの指定値
rthd_num:サーバ定義adb_sys_rthd_numオペランドの指定値
(e) 変数PROC_DEFSQLSZの求め方
変数PROC_DEFSQLSZは,定義系SQL実行時に加算します。次に示す値を代入してください。
なお,マルチノード機能を使用するかどうかで,代入する値が異なります。
マルチノード機能を使用しない場合に代入する値(単位:キロバイト)
|
|
マルチノード機能を使用する場合に代入する値(単位:キロバイト)
|
|
- 注
-
実表を定義した場合,または実表にインデクスを定義した場合は,プロセス共通メモリ(DBエリア情報)の所要量が増加します。「6.3.3(3)(d) 変数DBAREAINFの求め方」を参照して,変数DBAREAINFを再度求めてください。
(f) 変数PROC_UPDSZの求め方
変数PROC_UPDSZは,データベース接続後の定義系SQLの初回実行時,および更新系SQLの初回実行時に加算します。次に示す計算式から求めてください。
- 計算式(単位:キロバイト)
PROC_UPDSZ= BUFUPD×upd_users
変数の説明
- upd_users
-
更新ページ管理用のプロセス共通メモリを取得するコネクション(APおよびコマンド)の同時実行数
- BUFUPD
-
更新ページ管理用のプロセス共通メモリ
次に示す計算式から求めてください。
- 計算式(単位:キロバイト)
BUFUPD= ↑(56+BUFSCNC+BUFHIST+BUFFLU+BUFBLK)÷1,024↑
更新ページ管理用のプロセス共通メモリは,次に示すタイミングで確保されます。
表6‒4 メモリが確保されるタイミング 項番
実行する種別
確保の有無
1
-
AP実行時
-
adbsqlコマンド実行時
-
定義系SQLを実行したコネクション
-
更新系SQLを実行したコネクション
○※1
2
検索系SQLだけを実行したコネクション
×※2,※3
3
adbinitコマンド実行時
○
4
adbimportコマンド実行時
○
5
adbidxrebuildコマンド実行時
○
6
adbgetcstコマンド実行時
○※4
7
adbdbstatusコマンド実行時
×
8
adbstatコマンド実行時
×
9
adbmodareaコマンド実行時
○
10
adbexportコマンド実行時
×※2
11
adbmergechunkコマンド実行時
○
12
adbchgchunkcommentコマンド実行時
○※4
13
adbmodbuffコマンド実行時
×
14
adbarchivechunkコマンド実行時
○
15
adbunarchivechunkコマンド実行時
○
- (凡例)
-
○:更新ページ管理用のプロセス共通メモリを確保します。
×:更新ページ管理用のプロセス共通メモリを確保しません。
- 注※1
-
前処理でエラーになった場合は,更新ページ管理用のプロセス共通メモリを確保しません。
- 注※2
-
作業表への書き込みのためには,更新ページ管理用のプロセス共通メモリを確保しません。
- 注※3
-
一度でも定義系SQL,または更新系SQLを実行したコネクションでは,コネクションバッファを確保したままとなります。
- 注※4
-
システム表を更新するため,更新ページ管理用のプロセス共通メモリを確保します。
- BUFSCNC
-
次に示す計算式から求めてください。ただし,サーバ定義に-kオプションを指定したadbbuffオペランドがない場合は,変数BUFSCNCは0としてください。
- 計算式(単位:バイト)
BUFSCNC= (40×DBAREA_NUM+16,560+ΣSCNCTRE)×(RTHNUM+1)- DBAREA_NUM
-
データ用DBエリアの総数
- ΣSCNCTRE
-
-kオプションを指定したadbbuffオペランドごとに求めた変数SCNCTREの合計値
- SCNCTRE
-
次に示す計算式から求めてください。
計算式
SCNCTRE= 80×(adbbuff_opt_k÷SCAN_BUCKET+1)-
adbbuff_opt_k
adbbuffオペランドの-kオプションの指定値
-
SCAN_BUCKET
adbbuffオペランドに-kオプションが指定されている場合は,サーバ定義adb_sys_rthd_numオペランドの指定値と-kオプションの指定値のうち,小さい方の値を代入してください。
-
- RTHNUM
-
「6.3.3(3)(a) 変数SCIの求め方」の変数RTHNUMを参照してください。
- BUFHIST
-
次に示す計算式から求めてください。
- 計算式(単位:バイト)
BUFHIST= 96×RTHNUM+512+BUFMEM(RTHNUM+257)+BUFMEM(RTHNUM+4,097)- BUFMEM
-
「6.3.3(3)(c) 変数BUFGLOBALの求め方」の変数BUFMEMを参照してください。
- BUFFLU
-
次に示す計算式から求めてください。
- 計算式(単位:バイト)
BUFFLU= 8×uthd_num+96×RTHNUM+393,312- uthd_num
-
サーバ定義adb_sys_uthd_numオペランドの指定値
- BUFBLK
-
次に示す計算式から求めてください。
- 計算式(単位:バイト)
BUFBLK= 33,734,656+1,024×BUFLOG- BUFLOG
-
「6.3.3(3)(c) 変数BUFGLOBALの求め方」の変数BUFLOGを参照してください。
(g) 変数PROC_UPDLISTSZの求め方
変数PROC_UPDLISTSZは,マルチノード機能適用時に加算します。次に示す計算式から求めてください。
計算式(単位:キロバイト)
|
|
変数の説明
- max_users
-
サーバ定義adb_sys_max_usersオペランドの指定値
(2) リアルスレッド固有メモリの所要量の求め方(通常運用時)
通常運用時のリアルスレッド固有メモリ(RTHD_EXECSZ)の所要量は,次の計算式から求めてください。
計算式(単位:キロバイト)
|
|
- 変数の説明
-
-
RTHD_CNCTSZ
データベース接続時に使用するリアルスレッド固有メモリ
「6.3.4(2)(a) 変数RTHD_CNCTSZの求め方」を参照して求めてください。
-
RTHD_DEFSQLSZ
定義系SQLの実行時に使用するリアルスレッド固有メモリ
「6.3.4(2)(b) 変数RTHD_DEFSQLSZの求め方」を参照して求めてください。
-
RTHD_EXESQLSZ
操作系SQLの実行時に使用するリアルスレッド固有メモリ
「6.3.4(2)(c) 変数RTHD_EXESQLSZの求め方」を参照して求めてください。
-
RTHD_ROLLBKSZ
ロールバック処理時,またはHADBサーバの再開始時に使用するリアルスレッド固有メモリ
「6.3.4(2)(d) 変数RTHD_ROLLBKSZの求め方」を参照して求めてください。
-
RTHD_DBEXTSZ
DBエリア拡張時に使用するリアルスレッド固有メモリ
「6.3.4(2)(e) 変数RTHD_DBEXTSZの求め方」を参照して求めてください。
-
RTHD_WORKBUF
作業表使用時に使用するリアルスレッド固有メモリ
「6.3.4(2)(f) 変数RTHD_WORKBUFの求め方」を参照して求めてください。
-
RTHD_EXESQLDICSZ
操作系SQLの前処理時に使用するリアルスレッド固有メモリ
「6.3.4(2)(g) 変数RTHD_EXESQLDICSZの求め方」を参照して求めてください。
-
RTHD_COMMUSZ
通信処理時に使用するリアルスレッド固有メモリ
「6.3.4(2)(h) 変数RTHD_COMMUSZの求め方」を参照して求めてください。
-
RTHD_MODASZ
adbmodareaコマンド実行時に使用するリアルスレッド固有メモリ
「6.3.12(2) リアルスレッド固有メモリの所要量の求め方(adbmodareaコマンド実行時)」を参照して求めてください。
-
RTHD_EXPSQLTRCSZ
SQLトレースバッファの拡張時に使用するリアルスレッド固有メモリ
「6.3.4(2)(i) 変数RTHD_EXPSQLTRCSZの求め方」を参照して求めてください。
-
(a) 変数RTHD_CNCTSZの求め方
変数RTHD_CNCTSZは,データベース接続時に加算します。次に示す計算式から求めてください。
計算式(単位:キロバイト)
|
|
変数の説明
- TRANSNAP
-
「6.3.4(1)(c) 変数PROC_EXECSQLSZの求め方」の変数TRANSNAPを参照してください。
- SQLTRC
-
SQLトレース機能の管理情報
65,536キロバイトを代入してください。
(b) 変数RTHD_DEFSQLSZの求め方
変数RTHD_DEFSQLSZは,定義系SQL実行時に加算します。次に示す計算式から求めてください。
- 計算式(単位:キロバイト)
-
変数の説明
- SZ_ALTER_TABLE
-
実表の定義を変更するときに,次に示す値を代入してください。
値(単位:キロバイト)
- SZ_CREATE_INDEX
-
インデクスを定義するときに,次に示す値を代入してください。
また,CREATE TABLE文で一意性制約定義,またはチャンクアーカイブ指定を指定するときにも,次に示す値を代入してください。
値(単位:キロバイト)
- SZ_CREATE_TABLE
-
実表を定義するときに,次に示す値を代入してください。
値(単位:キロバイト)
- SZ_CREATE_VIEW
-
ビュー表を定義するときに,次に示す値を代入してください。
値(単位:キロバイト)
- SZ_DROP_INDEX
-
インデクスを削除するときに,次に示す値を代入してください。
また,DROP USER文,DROP SCHEMA文,またはDROP TABLE文を実行した場合に,処理の延長でインデクスが削除されるときにも,次に示す値を代入してください。
値(単位:キロバイト)
- SZ_DROP_TABLE
-
実表を削除するときに,次に示す値を代入してください。
また,DROP USER文またはDROP SCHEMA文を実行した場合に,処理の延長で実表が削除されるときにも,次に示す値を代入してください。
値(単位:キロバイト)
- SZ_DROP_VIEW
-
ビュー表を削除するときに,次に示す値を代入してください。
また,DROP USER文,DROP SCHEMA文またはDROP TABLE文を実行した場合に,処理の延長でビュー表が削除されるときにも,次に示す値を代入してください。
値(単位:キロバイト)
- SZ_GRANT
-
権限を付与するときに,次に示す値を代入してください。
値(単位:キロバイト)
- SZ_REVOKE
-
権限を取り消すときに,次に示す値を代入してください。
また,DROP USER文,DROP SCHEMA文またはDROP TABLE文を実行した場合に,処理の延長で権限が取り消されるときにも,次に示す値を代入してください。
値(単位:キロバイト)
(c) 変数RTHD_EXESQLSZの求め方
変数RTHD_EXESQLSZは,操作系SQL実行時に加算します。次に示す計算式から求めてください。
計算式(単位:キロバイト)
|
|
- 注※
-
アーカイブマルチチャンク表に対してPURGE CHUNK文およびTRUNCATE TABLE文を実行する場合に加算してください。
変数の説明
- max_sql():
-
実行する各SQLについて括弧内の変数の計算結果を求めて,それらの最大値を代入します。
- max_sql_concurrent_exec_num:
-
1トランザクション内で同時に実行するSQLの数の最大値
- SQL_CNCT_SIZE:操作系SQLの管理領域
-
次に示す計算式から求めてください。
- 計算式(単位:キロバイト)
SQL_CNCT_SIZE= STATEMENT_SIZE+CNCT_THD_SIZE+0.3
- STATEMENT_SIZE:文ハンドル管理情報
-
次に示す計算式から求めてください。
計算式(単位:キロバイト)
- PREPARE_INFO_SIZE:SQL文の前処理情報
-
次に示す計算式から求めてください。
計算式(単位:バイト)
PREPARE_INFO_SIZE= col_num×214+param_num×80+idx_num×512
col_num:SQLに指定した選択式の数
param_num:SQLに指定した?パラメタの数
idx_num:SQLで使用するインデクス数
- PARAM_INFO_SIZE:パラメタ格納領域
-
次に示す計算式から求めてください。
計算式(単位:バイト)
param_num:SQLに指定した?パラメタの数
param_size(i):各?パラメタの最大データ長
- APATHVIEW:アクセスパスを表示する際に作成されるアクセスパス情報管理領域
-
「6.3.4(1)(b) 変数PROC_TOTALSQLSSZの求め方」にある変数APATHVIEWを参照してください。
- CNCT_THD_SIZE:SQL実行管理領域
-
次に示す計算式から求めてください。
計算式(単位:キロバイト)
- tbl_num:指定した表数
-
FULL OUTER JOINを指定した場合は,FULL OUTER JOINの数を加算してください。
- sql_rthd_num:
-
サーバ定義adb_sql_exe_max_rthd_numオペランドの指定値
- setop_num:SQL文中に指定した集合演算子の数
-
FULL OUTER JOINを指定した場合は,FULL OUTER JOINの数を加算してください。
- query_num:問合せの数
-
SQL文中に指定したFROM句の数から求めてください。
また,FULL OUTER JOINを指定した場合は,FULL OUTER JOINの数×2で求めた値を加算してください。
- window_num:
-
SQL文中に指定したウィンドウ関数の数
- drvtbl_num:SQL文中に指定した導出表の数
-
FULL OUTER JOINを指定した場合は,FULL OUTER JOINの数を加算してください。
- csvread_num:
-
システム定義関数ADB_CSVREADを指定した表関数導出表の個数
- Σ(HASHGRP_SIZE):
-
SQL文に指定した問合せ単位にHASHGRP_SIZEを計算した合計値
- Σ(LMTWRK_SIZE):作成される作業表単位にLMTWRK_SIZEを計算した合計値
-
次に示すことについては,マニュアル「HADB AP開発ガイド」の「APの性能向上に関する設計」の「作業表が作成されるSQLを実行する際の考慮点」を参照してください。
-
LIMIT句を指定したSQL文が作業表を作成するかどうか
-
作成される作業表の個数
なお,LIMIT句で集合演算の結果の取得行数の最大値を設定する場合は,集合演算を構成する問合せ指定ごとに,LIMIT句の指定値が適用されます。
-
- 注 ビュー表指定時の留意事項
-
SQL文中にビュー表を指定した場合は,そのビュー表のビュー定義に指定した問合せ指定を導出表として記述したものとして計算する必要があります。例を次に示します。
- 例
-
指定したビュー定義
CREATE VIEW V1 AS SELECT * FROM T1,T2 WHERE T1.C1=T2.C2
指定したSQL文
SELECT * FROM V1,T3 WHERE V1.C1=T3.C3
計算対象とするSQL文
SELECT * FROM (SELECT * FROM T1,T2 WHERE T1.C1=T2.C2), T3 WHERE V1.C1=T3.C3 - MAX(CSVREAD_WORK_SIZE):
-
システム定義関数ADB_CSVREADを指定した表関数導出表ごとに求めてください。その中で,最も大きい値を代入してください。
- RESULT_WORK_SIZE:SQL実行結果格納領域
-
次に示す計算式から求めてください。データ長の計算は,「表6-8 各データ型のデータ長の一覧」を参照してください。
計算式(単位:バイト)
RESULT_WORK_SIZE= 40+sum_col_size+row_size +2×(sum_grp_size+sum_window_spec_size) +3×(sum_set_func_size+sum_dist_col_size+sum_window_func_size) +8×(all_col_num+row_num+2×(grp_col_num+window_spec_col_num) +3×(set_func_num+dist_col_num+window_func_num)) +sum_inpred_size+sum_reg_size +8×group_query_num+12×list_num +16×join_num+supquery_num +sum_setop_size×3+full_join_drvc_size×3-
sum_col_size
指定したすべての列のデータ長の合計値
-
row_size
ROWでデータを取得する表の行長の合計値
-
sum_grp_size
グループ化列のデータ長の合計値
-
sum_window_spec_size
ウィンドウ指定に指定した列のデータ長の合計値
-
sum_set_func_size
集合関数の結果のデータ長の合計値
-
sum_dist_col_size
DISTINCT集合関数の引数に指定した列のデータ長の合計値
-
sum_window_func_size
ウィンドウ関数の結果のデータ長の合計値
-
all_col_num
指定したすべての列の数
-
row_num
指定したROWの数
-
grp_col_num
GROUP BY句に指定したグループ化列の数
-
window_spec_col_num
ウィンドウ指定に指定した列の数
-
set_func_num
集合関数の数
-
dist_col_num
DISTINCT集合関数の引数に指定した列の数
-
window_func_num
ウィンドウ関数の数
-
sum_inpred_size
指定したすべてのIN述語の結果作成用領域(29+8×IN述語のINの右側に指定した値式の数)の合計値。ただし,IN述語を指定していない場合は0
-
sum_reg_size
指定したすべての日時情報取得関数およびユーザ情報取得関数のデータ長の合計値
-
group_query_num
GROUP BY句を指定した問合せ指定の数
-
list_num
作業表の個数
次の個数を合計したものを代入してください。
・ORDER BY句を指定した場合は+1
・GROUP BY句を指定した問合せ指定の数
・SELECT DISTINCTを指定した問合せ指定の数
・DISTINCT集合関数の指定数
・逆分布関数の指定数
・ウィンドウ関数の指定数
・FROM句に複数の表参照を指定した問合せ指定の数
・導出表の数
・ビュー表の指定数
・WITH句の数
・結合表の指定数(FULL OUTER JOINの場合は2とカウントする)
・副問合せの指定数
・集合演算の指定数+1
-
join_num
結合表の数
FULL OUTER JOINの場合は,1つ当たり2とカウントしてください。
-
supquery_num
副問合せの数
-
sum_setop_size
各集合演算について,集合演算の結果の選択式のデータ長を合計してください。そして,それらを合計した値を代入してください。
-
full_join_drvc_size
FULL OUTER JOINを指定した各問合せ指定について,選択式のデータ長を求めてください。そして,それらを合計した値を代入してください。
-
- OPE_WORK_SIZE:演算管理領域
-
次に示す計算式から求めてください。ただし,四則演算,論理演算,CASE式およびスカラ関数を指定していない場合は0になります。データ長の計算は,「表6-8 各データ型のデータ長の一覧」を参照してください。
計算式(単位:バイト)
arith_num:各値式中の四則演算子(+,−,*または/)の数の最大値
concat_num:各値式中の連結演算子(+または||)およびスカラ関数CONCATの数の合計値の中で最大の値
logical_num:探索条件中の論理演算子の数の最大値
case_size:CASE式の結果長の合計値
sclfunc_size:スカラ関数の結果長の合計値
- HASHGRP_SIZE:ハッシュグループ化作業領域
-
次に示す計算式から求めてください。ただし,サーバ定義のadb_sql_exe_hashgrp_area_sizeオペランドに0を指定している場合,またはSQLにGROUP BY句と集合関数が指定されていない場合は0になります。データ長の計算は,「表6-8 各データ型のデータ長の一覧」を参照してください。
計算式(単位:バイト)
HASHGRP_SIZE= 160+24×(grp_col_num+set_func_num)+sum_grp_size +sum_set_func_size+hashgrp_byte +↓(hashgrp_byte×4−MIN(8,192×128, ↓(hashgrp_byte×10)÷25↓)) ÷(↑(16+↑(sum_grp_size)÷4↑×4 +sum_set_func_size)÷8↑×8)↓-
grp_col_num
GROUP BY句に指定したグループ化列の数
-
set_func_num
集合関数の数
-
sum_grp_size
グループ化列のデータ長の合計値
-
sum_set_func_size
集合関数の結果のデータ長の合計値
-
hashgrp_byte
ハッシュグループ化領域サイズの指定値
次に示す計算式から求めてください。
サーバ定義adb_sql_exe_hashgrp_area_sizeオペランドの指定値×1,024
-
- HASHTBL_CNCT_SIZE:ハッシュテーブルを使用した検索時の管理領域
-
SQL文中に,次に示すどれかを含む場合は求めてください。すべて含まない場合は,0になります。また,最大SQL処理リアルスレッド数,またはハッシュテーブル領域サイズが0の場合も,0になります。
-
複数の表を=で結合する問合せ指定
-
副問合せ
-
GROUP BY句
-
DISTINCT集合関数
計算式(単位:バイト)
-
sql_rthd_num
サーバ定義adb_sql_exe_max_rthd_numオペランドの指定値
-
hashtbl_row_num
ハッシュテーブルの最大行長
「6.16.3 ハッシュテーブルを使用した検索時に作成される作業表の数」を参照してください。
-
hashtbl_col_num
SQL文中の指定内容に従って求めた値のうち,最大値を代入
■複数の表を=で結合する問合せ指定
ハッシュテーブル列数の最大のものになります。問合せ指定ごとのハッシュテーブルの列数を求める場合,=で結合している各表に対して選択式および探索条件中に指定したすべての列の数を求めてください。そのあとで求めた表ごとの値のうち,最小値を除いた合計値を求めてください。
■副問合せ
副問合せごとに,次に示す値の合計を求めてください。その中で最大の値が副問合せの値になります。
・副問合せの選択式に指定した列数
・副問合せに指定した集合関数の数
・探索条件中の外への参照列を含む述語に指定した列の数
■GROUP BY句,およびDISTINCTを指定した集合関数
GROUP BY句,およびDISTINCT集合関数を指定した問合せごとに次に示す値の合計を求めてください。その中で最大の値がGROUP BY句およびDISTINCTを指定した集合関数の値になります。
・GROUP BY句に指定したグループ化列の数
・集合関数の数
-
bucket_num
ハッシュテーブルを使用した検索時に作成される作業表の数
「6.16.3 ハッシュテーブルを使用した検索時に作成される作業表の数」を参照してください。
-
hashtbl_num
ハッシュテーブル数
「6.16.3 ハッシュテーブルを使用した検索時に作成される作業表の数」を参照してください。
-
- IN_PRD_SIZE:IN述語,限定述語実行管理領域
-
次に示す計算式から求めてください。ただし,IN述語,限定述語を指定していない場合は0になります。なお,変数in_pred_numが0の場合もIN_PRD_SIZEは0になります。
計算式(単位:バイト)
IN_PRD_SIZE= 48+in_pred_num×(96+sql_rthd_num×48)
sql_rthd_num:サーバ定義adb_sql_exe_max_rthd_numオペランドの指定値
in_pred_num:次に示す条件を満たす述語の数の合計値
-
IN述語の場合
左側の値式に指定した列が検索に使用するB-treeインデクスの先頭構成列
-
限定述語の場合
=ANYまたは=SOMEで左側の値式に指定した列が検索に使用するB-treeインデクスの先頭構成列
-
- LIKE_PRD_SIZE:LIKE述語実行管理領域
-
次に示す計算式から求めてください。ただし,LIKE述語を指定していない場合は0になります。また,すべてのLIKE述語の一致値に指定した列が検索に使用するB-treeインデクスの構成列に含まれない場合は0になります。データ長の計算は,「表6-8 各データ型のデータ長の一覧」を参照してください。
計算式(単位:バイト)
LIKE_PRD_SIZE= 16+like_param_num×(64+like_param_size×2)
-
like_param_num
パターン文字列に?パラメタを指定したLIKE述語の数。ただし,一致値に指定した列が検索に使用するB-treeインデクスの構成列に含まれないLIKE述語は除きます。
-
like_param_size
パターン文字列に指定した?パラメタが仮定するデータの長さの最大値。ただし,一致値に指定した列が検索に使用するB-treeインデクスの構成列に含まれないLIKE述語の分は除きます。
-
- REG_SIZE:日時情報取得関数およびユーザ情報取得関数の管理領域
-
次に示す計算式から求めてください。ただし,日時情報取得関数およびユーザ情報取得関数を指定していない場合は0になります。データ長の計算は,「表6-8 各データ型のデータ長の一覧」を参照してください。
計算式(単位:バイト)
REG_SIZE= 24×date_spec+32×time_spec+32×timestmp_spec+120×user_spec+24
-
date_spec
CURRENT_DATEを指定した場合は1,指定していない場合は0
-
time_spec
CURRENT_TIMEを指定した場合は1,指定していない場合は0
-
timestmp_spec
CURRENT_TIMESTAMPを指定した場合は1,指定していない場合は0
-
user_spec
CURRENT_USERを指定した場合は1,指定していない場合は0
-
- LMTWRK_SIZE
-
作業表の管理領域
ただし,LIMIT句を指定していない場合,または作業表が作成されない場合は0になります。
計算式(単位:バイト)
LMTWRK_SIZE= ↑(96×↑(offset_num+limit_num)÷↓(wrk_page_size−64)÷ROWSZ↓↑ +(4+ROWSZ)×(offset_num+limit_num))÷1,024↑
-
offset_num
LIMIT句のオフセット行数の指定値
-
limit_num
LIMIT句のリミット行数の指定値
-
wrk_page_size
作業表用DBエリアのページサイズ(単位:バイト)
-
ROWSZ
作業表の行長(単位:バイト)
作業表の行長については,「5.9.2 作業表を格納するために必要な基本行用ページ数の求め方」の変数ROWSZの計算式を基に求めてください。ただし,変数col_size(i)を求める場合で,かつデータ型が可変長の列のときは,d(実際のデータ長)にn(定義長)を代入してください。
-
- COR_QUERY_SIZE
-
外への参照列を含む副問合せの作業領域
16,777,216バイトを代入してください。ただし,外への参照列を含む副問合せを指定していない場合は0を代入してください。
- TXT_WORK_SIZE
-
テキストインデクスの作業領域
次に示す計算式から求めてください。ただし,テキストインデクスを定義していない場合,またはテキストインデクスを使用しない場合は0を代入してください。
計算式(単位:バイト)
-
scan_str_num
テキストインデクスを使用するLIKE述語のパターン文字列に指定した文字列の文字数
-
- CSVREAD_WORK_SIZE
-
システム定義関数ADB_CSVREADの検索作業領域
次に示す計算式から求めてください。ただし,システム定義関数ADB_CSVREADを使用しない場合は0を代入してください。
計算式(単位:バイト)
- decomp_areasize
-
伸長処理領域サイズ(単位:バイト)
入力データファイルの伸長処理に使用する領域サイズです。システム定義関数ADB_CSVREADの圧縮形式オプションCOMPRESSION_FORMATの指定値によって,代入する値が異なります。
伸長処理領域サイズについては,次に示す表から求めてください。
表6‒5 伸長処理領域サイズの一覧 項番
圧縮形式オプションCOMPRESSION_FORMATの指定値
伸長処理領域サイズ(単位:バイト)
1
GZIP
112
2
NONE
40
- col_num
-
入力データファイル中から取り出すフィールドデータの数
- temp_coldata_areasize(i)
-
一時格納領域サイズ(単位:バイト)
入力データファイル中から取り出したi番目のフィールドデータを一時的に格納する領域サイズです。iは表関数導出表の列名リストの順番に対応します。
一時格納領域サイズについては,次に示す表から求めてください。
表6‒6 各データ型の一時格納領域サイズの一覧 項番
分類
データ型
一時格納領域サイズ(単位:バイト)
1
数データ
INTEGER
24
2
SMALLINT
16
3
DECIMAL
48
4
DOUBLE PRECISION
512
5
文字データ
CHAR
((2+定義長×2+7)÷8)×8
6
VARCHAR
((2+定義長×2+7)÷8)×8
7
日時データ
DATE
16
8
TIME
24
9
TIMESTAMP
40
10
バイナリデータ
BINARY
入力データファイル中の記述形式が16進の場合
((2+定義長×2+7)÷8)×8
11
入力データファイル中の記述形式が2進の場合
((2+定義長×8+7)÷8)×8
12
VARBINARY
入力データファイル中の記述形式が16進の場合
((2+定義長×2+7)÷8)×8
13
入力データファイル中の記述形式が2進の場合
((2+定義長×8+7)÷8)×8
- REGEXP_WORK_SIZE
-
正規表現の評価用作業領域(単位:バイト)
LIKE_REGEX述語を指定していない場合は,0を代入してください。
変数REGEXP_WORK_SIZEは,LIKE_REGEX述語のパターン文字列に指定された正規表現内に,0文字の繰り返しが存在するかどうかで計算式が異なります。
0文字の繰り返しとは,メタ文字や繰り返し因子の組み合わせによって,該当する文字が0文字になる可能性がある記述を指します。例えば,「*」,「?」,「{0,}」,および「{0,x}」(x:1以上の整数)をネストした記述です。
- 0文字の繰り返しになる記述例
(a*)+,(c{0,2})*,(e?){3}
変数REGEXP_WORK_SIZEを求める計算式を,それぞれ次に示します。
計算式(正規表現内に0文字の繰り返しが存在しない場合)
計算式(正規表現内に0文字の繰り返しが存在する場合)
- 注意事項
-
正規表現内に0文字の繰り返しが存在する場合,大量のメモリを使用するおそれがあります。ただし,0文字となる可能性がある場合でも,量指定子や繰り返し因子をネストして記述しなければ,大量のメモリを使用しません。
- push_instr_num
-
次に示す計算式で求めてください。
変数C(繰り返し因子に指定された繰り返しの数)の求め方を,次の表に示します。
表6‒7 繰り返し因子に指定された繰り返しの数の求め方 項番
繰り返し因子に指定された内容
変数Cに代入する値
例
1
上限値と下限値の両方が指定されている
「上限値−下限値」で求めた値
「{10,20}」と指定されている場合は,10を代入します。
2
次に示す条件を満たしている
-
下限値だけが指定されている
-
下限値の後ろにコンマが存在しない
下限値
「{10}」と指定されている場合は,10を代入します。
3
次に示す条件を満たしている
-
下限値だけが指定されている
-
下限値の後ろにコンマが存在する
「256−下限値」で求めた値
「{10,}」と指定されている場合は,246を代入します。
-
- scan_str_num
-
パターン文字列に指定した文字列の文字数
- ostrrep_instr_num
-
0文字の繰り返しの合計値
正規表現の記述例と,変数REGEXP_WORK_SIZEの計算式の例を,次に示します。
- 正規表現の記述例1
KFAA11[0-9]{3}-E計算式の例(単位:バイト)
- 正規表現の記述例2
KFAA6000[2-9]-E.*uid=12345.*
計算式の例(単位:バイト)
- PROC_THD_SIZE:SQL処理リアルスレッド管理領域
-
次に示す計算式から求めてください。なお,変数RESULT_WORK_SIZE,変数OPE_WORK_SIZE,変数HASHGRP_SIZE,および変数COR_QUERY_SIZEについては,上記にある各計算式から求めた値を代入してください。
計算式(単位:キロバイト)
- tbl_num:指定した表数
-
FULL OUTER JOINを指定した場合は,FULL OUTER JOINの数を加算してください。
- sql_rthd_num:
-
サーバ定義adb_sql_exe_max_rthd_numオペランドの指定値
- idx_col_num:
-
検索に使用するB-treeインデクスおよびテキストインデクスの構成列数
- idx_size:
-
使用する各B-treeインデクスおよびテキストインデクスの構成列の定義長の合計値
- uthd_num:
-
サーバ定義adb_sys_uthd_numオペランドの指定値
- Σ_[i=cor_query](HASHGRP_SIZE(i)):
-
SQL文中の外への参照列を含む副問合せごとにHASHGRP_SIZEを計算した合計値
- Σ_[j=not_cor_query](HASHGRP_SIZE(j)):
-
SQL文中の外への参照列を含む副問合せではない問合せ指定単位にHASHGRP_SIZEを計算した合計値
- HASHTBL_PROC_SIZE:ハッシュテーブルを使用した検索時のリアルスレッド管理領域
-
SQL文中に,次に示すどれかを含む場合は求めてください。すべて含まない場合は,0になります。また,最大SQL処理リアルスレッド数,またはハッシュテーブル領域サイズが0の場合も,0となります。
-
複数の表を=で結合する問合せ指定
-
副問合せ
-
GROUP BY句
-
DISTINCT集合関数
計算式(単位:バイト)
-
hashtbl_byte
次に示す計算式で求めた値
-
sql_rthd_num
クライアント定義adb_sql_exe_max_rthd_numオペランドの指定値
-
uthd_num
サーバ定義adb_sys_uthd_numオペランドの指定値
-
clt_wrk_page_num
クライアント定義adb_dbbuff_wrktbl_clt_blk_numオペランドの指定値(ただし,adbexportコマンド実行時はエクスポートオプションadb_export_wrktbl_blk_numの指定値)
-
hashtbl_num
ハッシュテーブル数
「6.16.3 ハッシュテーブルを使用した検索時に作成される作業表の数」を参照してください。
-
- setop_num:SQL文中に指定した集合演算子の数
-
FULL OUTER JOINを指定した場合は,FULL OUTER JOINの数を加算してください。
- drvtbl_num:SQL文中に指定した導出表の数
-
FULL OUTER JOINを指定した場合は,FULL OUTER JOINの数を加算してください。
- in_query_num:次に示す条件を満たすIN述語,限定述語の数の合計値
-
-
IN述語の場合
右側に表副問合せを指定し,左側の値式に指定した列が検索に使用するB-treeインデクスの先頭構成列
-
限定述語の場合
=ANYまたは=SOMEで左側の値式に指定した列が検索に使用するB-treeインデクスの先頭構成列
-
- inprd_cor_query_num:
-
外への参照列を含む副問合せ中に指定されており,かつ変数in_query_numに示した条件を満たすIN述語,限定述語の数の合計値
- max_cor_query(X):
-
SQL文中の外への参照列を含む副問合せごとに,その副問合せ中に指定したXの最大値を代入します。
- setop_cor_query_num:
-
外への参照列を含む副問合せ中に指定されている集合演算子の数
- window_cor_query_num:
-
外への参照列を含む副問合せ中に指定されているウィンドウ関数の数
- limit_cor_query_num:
-
外への参照列を含む副問合せ中に指定されているLIMIT句の数
- cor_query_num:
-
外への参照列を含む副問合せ,およびその副問合せ中に含まれる副問合せの合計値
- Σ(drvtbl_row_len×MIN(drvtbl_row_num,1,044,480)):
-
導出表を指定する場合に,導出表ごとに求めてください。そして,求めた値を合計してください。
-
drvtbl_row_len
導出表の選択式のデータ長を合計した値を代入してください。
データ長の計算は,「表6-8 各データ型のデータ長の一覧」を参照してください。
-
drvtbl_row_num
導出表の行数を代入してください。行数がわからない場合は,1,044,480を代入してください。
-
- Σ(in_query_drvc_len×MIN(in_query_drvc_num,1,044,480)):
-
変数in_query_numの対象となる述語ごとに求めてください。そして,求めた値を合計してください。
-
in_query_drvc_len
変数in_query_numの対象となる述語の副問合せの選択式のデータ長を代入してください。
データ長の計算は,「表6-8 各データ型のデータ長の一覧」を参照してください。
-
in_query_drvc_num
変数in_query_numの対象となる述語の副問合せの行数を代入してください。行数がわからない場合は,1,044,480を代入してください。
-
- leftouter_num:
-
LEFT OUTER JOINの指定数
- Σ(LMTWRK_SIZE):作成される作業表単位にLMTWRK_SIZEを計算した合計値
-
次に示すことについては,マニュアル「HADB AP開発ガイド」の「APの性能向上に関する設計」の「作業表が作成されるSQLを実行する際の考慮点」を参照してください。
-
LIMIT句を指定したSQL文が作業表を作成するかどうか
-
作成される作業表の個数
なお,LIMIT句で集合演算の結果の取得行数の最大値を設定する場合は,集合演算を構成する問合せ指定ごとに,LIMIT句の指定値が適用されます。
-
- 注 ビュー表指定時の留意事項
-
SQL文中にビュー表を指定した場合は,そのビュー表のビュー定義に指定した問合せ指定を導出表として記述したものとして計算する必要があります。
- csvread_num
-
システム定義関数ADB_CSVREADを指定した表関数導出表の個数
- Σ(csvread_filename_len+4)
-
システム定義関数ADB_CSVREADを指定した表関数導出表ごとに求めてください。そして,求めた値を合計してください。
- csvread_filename_len
-
アクセスするファイルのファイル名(フルパス)の長さ
- Σ((csvread_row_len+4)×MIN(csvread_row_num,65,025))
-
システム定義関数ADB_CSVREADを指定した表関数導出表ごとに求めてください。そして,求めた値を合計してください。
- csvread_row_len
-
システム定義関数ADB_CSVREADを指定した表関数導出表の列のデータ長の合計
データ長の計算は,「表6-8 各データ型のデータ長の一覧」を参照してください。
- csvread_row_num
-
システム定義関数ADB_CSVREADを指定した表関数導出表の行数
行数がわからない場合は,65,025を代入してください。
- Σ(CSVREAD_WORK_SIZE)
-
システム定義関数ADB_CSVREADを指定した表関数導出表ごとに求めてください。そして,求めた値を合計してください。
- SCAN_WORK_SIZE:検索作業領域
-
次に示す計算式から求めてください。
計算式(単位:バイト)
- KEYSZ:検索に使用するB-treeインデクスのキー長
-
「5.8.4 B-treeインデクスのキー長(KEYSZ)の求め方」を参照してください。
- idx_col_num
-
検索に使用するB-treeインデクスの構成列数
- logical_num
-
探索条件中の論理演算子の数の最大値
- scan_str_num
-
次に示すどちらかの文字数を代入してください。
-
テキストインデクスを使用するLIKE述語のパターン文字列に指定した文字列の文字数
-
スカラ関数CONTAINSに指定した検索文字列の文字数
パターン文字列が1文字の場合,または,パターン文字列が1,000文字を超える場合は,1,000を代入してください。
-
- txt_nest_num
-
次に示すネスト数を合計した値※
-
テキストインデクスを使用するLIKE述語のOR条件のネスト数
-
スカラ関数CONTAINSのOR条件のネスト数
-
- txt_contains_str
-
スカラ関数CONTAINSに指定した検索文字列の文字数※
- 注※
-
変数txt_nest_num,および変数txt_contains_strに代入した値の合計値の上限は1,001です。合計値が1,001を超える場合は,1,001を代入してください。
- TXT_WORK_SIZE
-
テキストインデクスの作業領域
次の計算式から求めてください。なお,テキストインデクスを定義していない場合,またはテキストインデクスを使用しない場合は0を代入してください。
計算式(単位:バイト)
- BUF_DLYSZ
-
更新ページの通知領域
次の値を代入してください。
値(単位:キロバイト)
- ARC_DIR_PATH
-
削除対象のアーカイブディレクトリのパス名を管理する領域
次に示す計算式から求めてください。
計算式(単位:キロバイト)
- archivedir_path_num
-
TRUNCATE TABLE文を実行する場合は,1を代入してください。
PURGE CHUNK文を実行する場合は,削除対象のチャンク数を代入してください。
データ長については,次に示す表から求めてください。
|
項番 |
分類 |
データ型 |
データ長(単位:バイト) |
|
|---|---|---|---|---|
|
1 |
数データ |
INTEGER |
8 |
|
|
2 |
SMALLINT |
4 |
||
|
3 |
DECIMAL |
1≦精度≦4 |
2 |
|
|
4 |
5≦精度≦8 |
4 |
||
|
5 |
9≦精度≦16 |
8 |
||
|
6 |
17≦精度≦38 |
16 |
||
|
7 |
DOUBLE PRECISION |
8 |
||
|
8 |
文字データ |
CHAR |
定義長 |
|
|
9 |
VARCHAR |
定義長+2 |
||
|
10 |
日時データ |
DATE |
4 |
|
|
11 |
TIME(p) |
3+↑p÷2↑ |
||
|
12 |
TIMESTAMP(p) |
7+↑p÷2↑ |
||
|
13 |
バイナリデータ |
BINARY |
定義長 |
|
|
14 |
VARBINARY |
定義長+2 |
||
- (凡例)
-
p:小数秒の桁数(0,3,6,9または12。省略した場合は0を仮定)
- 注
-
CURRENT_USERはデータ型VARCHAR,定義長100として計算してください。
(d) 変数RTHD_ROLLBKSZの求め方
変数RTHD_ROLLBKSZは,ロールバック処理時,またはHADBサーバの再開始時に加算します。次に示す値を代入してください。
- 値(単位:キロバイト)
RTHD_ROLLBKSZ= 67
(e) 変数RTHD_DBEXTSZの求め方
変数RTHD_DBEXTSZは,DBエリア拡張時に加算します。次に示す値を代入してください。
- 値(単位:キロバイト)
RTHD_DBEXTSZ= 32,768
(f) 変数RTHD_WORKBUFの求め方
変数RTHD_WORKBUFは,作業表使用時に加算します。次に示す計算式から求めてください。
- 計算式(単位:キロバイト)
RTHD_WORKBUF= ↑(clt_wrk_page_num×(wrk_page_size+304)+8 ×(clt_wrk_page_num+WIO_NUM)+wrk_page_size)÷1,024↑×1.05- 変数の説明
-
-
clt_wrk_page_num
クライアント定義adb_dbbuff_wrktbl_clt_blk_numオペランドの指定値(ただし,adbexportコマンド実行時はエクスポートオプションadb_export_wrktbl_blk_numの指定値)
-
wrk_page_size
初期設定オプションadb_init_wrk_page_sizeの指定値
-
WIO_NUM
クライアント定義adb_dbbuff_wrktbl_clt_blk_numオペランドの指定値(ただし,adbexportコマンド実行時はエクスポートオプションadb_export_wrktbl_blk_numの指定値)と変数UTHNUMのうち,小さい方の値を代入してください。変数UTHNUMについては,「6.3.3(3)(a) 変数SCIの求め方」を参照してください。
-
(g) 変数RTHD_EXESQLDICSZの求め方
変数RTHD_EXESQLDICSZは,操作系SQLの前処理時に加算します。次に示す計算式から求めてください。
なお,対象表がビュー表の場合は,計算式で求めた値に32キロバイトを加算してください。
- 計算式(単位:キロバイト)
-
変数の説明
- LIKE_REG_PRD_SIZE
-
LIKE_REGEX述語の実行管理領域(単位:バイト)
次に示す計算式から求めてください。
なお,LIKE_REGEX述語を指定していない場合は,変数LIKE_REG_PRD_SIZEに0を代入してください。
- scan_str_num
-
パターン文字列に指定した文字列の文字数
- normal_factor_size
-
パターン文字列に指定された正規表現内の正規因子の数
- paren_nest_num
-
パターン文字列に指定された正規表現内の丸括弧のネスト数
- vertical_line_num
-
パターン文字列に指定された正規表現内の垂直棒の数
- quantifier_nest_num
-
パターン文字列に指定された正規表現内の量指定子のネストの数
- repetition_factor_sum
-
パターン文字列に指定された正規表現内の繰り返し因子に指定された上限値の合計値
繰り返し因子に指定された上限値が存在しない場合は,繰り返し因子に指定された下限値の値を代入してください。
- 正規表現の記述例
((a{2}){5}){8,10}計算式(単位:個数)
正規表現の記述例と,変数LIKE_REG_PRD_SIZEの計算式の例を,次に示します。
- 正規表現の記述例1
KFAA11[0-9]{3}-E計算式の例(単位:バイト)
- 正規表現の記述例2
KFAA6000[2-9]-E.*uid=12345.*
計算式の例(単位:バイト)
- BYTE_CODE_SIZE
-
LIKE_REGEX述語の実行管理領域内のパターン文字列に指定された正規表現を評価用に変換したバイトコードを格納する領域(単位:バイト)
次に示す計算式から求めてください。
- char_specifier_num
-
パターン文字列に指定された正規表現内の文字指定子の数の合計値
文字指定子に繰り返し因子が指定されている場合は,その繰り返し数を加算してください。また,「(a{10}){10}」のように繰り返し因子がネストしている場合は,繰り返し数を乗算してください。そして,乗算した結果を,変数char_specifier_numに加算してください。
繰り返し因子に指定された繰り返しの数については,「6.3.4(2)(c) 変数RTHD_EXESQLSZの求め方」の「表6-7 繰り返し因子に指定された繰り返しの数の求め方」を参照してください。
- quantifier_num
-
パターン文字列に指定された正規表現内の繰り返し因子を除く量指定子の数
- char_class_num
-
パターン文字列に指定された正規表現内の文字クラスの数の合計値
文字クラスに繰り返し因子が指定されている場合は,その繰り返し数を加算してください。また,「(¥d{10}){10}」のように繰り返し因子がネストしている場合は,繰り返し数を乗算してください。そして,乗算した結果を,変数char_class_numに加算してください。
繰り返し因子に指定された繰り返しの数については,「6.3.4(2)(c) 変数RTHD_EXESQLSZの求め方」の「表6-7 繰り返し因子に指定された繰り返しの数の求め方」を参照してください。
- normal_char_set_num
-
パターン文字列に指定された正規表現内の正規文字集合識別子指定の数の合計値
正規文字集合識別子指定に繰り返し因子が指定されている場合は,その繰り返し数を加算してください。また,「([[:alpha:]]{10}){10}」のように繰り返し因子がネストしている場合は,繰り返し数を乗算してください。そして,乗算した結果を,変数normal_char_set_numに加算してください。
繰り返し因子に指定された繰り返しの数については,「6.3.4(2)(c) 変数RTHD_EXESQLSZの求め方」の「表6-7 繰り返し因子に指定された繰り返しの数の求め方」を参照してください。
- 参考
-
「([[:alpha:]]{10}){10}」の場合は,正規文字集合も繰り返しているため,変数char_list_numにも100を加算する必要があります。
- char_list_num
-
パターン文字列に指定された正規表現内の正規文字集合の数の合計値
正規文字集合に繰り返し因子が指定されている場合は,その繰り返し数を加算してください。また,「([abc]{10}){10}」のように繰り返し因子がネストしている場合は,繰り返し数を乗算してください。そして,乗算した結果を,変数char_list_numに加算してください。
繰り返し因子に指定された繰り返しの数については,「6.3.4(2)(c) 変数RTHD_EXESQLSZの求め方」の「表6-7 繰り返し因子に指定された繰り返しの数の求め方」を参照してください。
- repetition_factor_sum
-
パターン文字列に指定された正規表現内の繰り返し因子に指定された上限値の合計値
繰り返し因子に指定された上限値が存在しない場合は,繰り返し因子に指定された下限値の値を代入してください。
- 正規表現の記述例
((a{2}){5}){8,10}計算式(単位:個数)
正規表現の記述例と,変数BYTE_CODE_SIZEの計算式の例を,次に示します。
- 正規表現の記述例1
KFAA11[0-9]{3}-E計算式の例(単位:バイト)
- 正規表現の記述例2
KFAA6000[2-9]-E.*uid=12345.*
計算式の例(単位:バイト)
(h) 変数RTHD_COMMUSZの求め方
変数RTHD_COMMUSZは,通信処理時に加算します。次に示す計算式から求めてください。
- 計算式(単位:キロバイト)
RTHD_COMMUSZ= RCVBUF+SNDBUF
変数の説明
- RCVBUF:受信バッファ
-
次に示す計算式から求めてください。
- 計算式(単位:キロバイト)
RCVBUF= ↑(352+CMSG)÷1,024↑
- CMSG:HADBクライアントからの送信データサイズ
-
マニュアル「HADB AP開発ガイド」の「HADBクライアントのメモリ所要量の見積もり」の「HADBクライアントとHADBサーバの通信時に使用するメモリ所要量」にある変数CMSGを参照してください。
- SNDBUF:送信バッファ
-
初期確保時の送信バッファは次に示す値を代入してください。
- 値(単位:キロバイト)
SNDBUF= 4
初期確保した送信バッファを超える送信データが作成されると,HADBサーバは次に示す計算式で求められた値を再確保します。
- 計算式(単位:キロバイト)
SNDBUF= ↑SMSG÷4,096↑×4
- SMSG:HADBサーバの送信データサイズ
-
送信データサイズは処理の内容によって異なります。各処理で確保される送信データサイズを次の表に示します。
表6‒9 各処理で確保される送信データサイズの一覧 項番
処理内容
送信データサイズの計算式(単位:バイト)
1
SQL文を実行した場合
2
SQL文の実行がNOROWの場合
3
FETCHの場合
4
FETCHがNOROWの場合(一括転送で1行以上FETCHできた場合)
5
SQL文の前処理をした場合
6
adbdbstatusコマンドを実行した場合
(凡例)
- srv_base_info:送信データの基本情報
-
152バイトを代入してください。
- srv_execute:実行固有情報
-
24バイトを代入してください。
- srv_fetch:FETCH固有情報
-
16バイトを代入してください。
- srv_norow:NOROW固有情報
-
520バイトを代入してください。
- srv_prepare:前処理固有情報
-
56バイトを代入してください。
- srv_status_info:データベース状態解析固有情報
-
1,048,576バイトを代入してください。
- ARRAY_RESULT:一括更新結果
-
次に示す計算式から求めてください。
計算式(単位:バイト)
ARRAY_RESULT= (array_num−1)×8
- array_num:一括更新した?パラメタの組の数
-
APの実装方法によって異なります。
-
CLI関数を使用したAPの場合
a_rdb_SQLBindArrayParams()の引数ArrayCountに指定した数になります。a_rdb_SQLBindParams()を使用してパラメタ結合した場合は,1で固定されます。
-
JDBCドライバを使用したAPの場合
addBatchメソッドで登録したパラメタリストの数になります。executeBatchメソッドまたはexecuteLargeBatchメソッドを使用しない場合は,1で固定されます。
-
- FETCH_DATA:一括転送行データ
-
次に示す計算式から求めてください。
計算式(単位:バイト)
col_num:SQL文に指定した選択式の数
col_size(i):各選択式のデータ長
- fetch_size:FETCH処理時の一括送信行数
-
クライアント定義adb_clt_fetch_sizeオペランドの指定値を代入してください。クライアント定義adb_clt_fetch_sizeオペランドについては,マニュアル「HADB AP開発ガイド」の「クライアント定義の作成」の「クライアント定義のオペランドの説明」を参照してください。
- PREPARE_INFO_SIZE:SQL文の前処理情報
-
「6.3.4(2)(c) 変数RTHD_EXESQLSZの求め方」の変数PREPARE_INFO_SIZEを参照してください。
- APATHVIEW:アクセスパスを表示する際に作成されるアクセスパス情報管理領域
-
「6.3.4(1)(b) 変数PROC_TOTALSQLSSZの求め方」にある変数APATHVIEWを参照してください。
(i) 変数RTHD_EXPSQLTRCSZの求め方
変数RTHD_EXPSQLTRCSZは,SQLトレースバッファの拡張時に加算します(変数RTHD_EXPSQLTRCSZの値が32,768キロバイトを超えると,SQLトレースバッファが拡張されます)。次に示す計算式から求めてください。
計算式(単位:キロバイト)
|
|
変数の説明
- PARAM_INFO_SIZE
-
「6.3.4(2)(c) 変数RTHD_EXESQLSZの求め方」の変数PARAM_INFO_SIZEを参照してください。
- array_num
-
一括更新する際に指定した?パラメタセットの数