6.3.8 adbgetcstコマンド実行時のメモリ所要量の求め方
adbgetcstコマンドを実行する場合,HADBサーバは次に示すメモリを使用します。各メモリの所要量を求めてください。
- ■共有メモリ
-
-
プロセス共通メモリ(PROC_GETCOSTSZ)
-
リアルスレッド固有メモリ(RTHD_GETCOSTSZ)
-
それぞれのメモリ所要量の計算式を次に示します。
(1) プロセス共通メモリの所要量の求め方(adbgetcstコマンド実行時)
adbgetcstコマンド実行時のプロセス共通メモリ(PROC_GETCOSTSZ)の所要量は,次に示す計算式から求めてください。
- 計算式(単位:キロバイト)
PROC_GETCOSTSZ= Σ(PROC_MNG+PROC_CST)※
- 変数の説明
-
-
PROC_MNG
コスト情報収集時の管理で使用するプロセス共通メモリ
「6.3.8(1)(a) 変数PROC_MNGの求め方」を参照して求めてください。
-
PROC_CST
コスト情報収集時にバッファとして使用するプロセス共通メモリ
「6.3.8(1)(b) 変数PROC_CSTの求め方」を参照して求めてください。
-
- 注※
-
複数のadbgetcstコマンドを同時に実行する場合は,各adbgetcstコマンドが使用するメモリ所要量を求めてください。そして,それぞれで求めたメモリ所要量を合計してください。
(a) 変数PROC_MNGの求め方
変数PROC_MNGは,コスト情報収集時の管理で使用するプロセス共通メモリの所要量を求めるときに使用します。次に示す計算式から求めてください。
- 計算式(単位:キロバイト)
-
変数の説明
- DIC
-
処理対象表の定義情報を取得するメモリ
計算式(単位:キロバイト)
- 注※
-
処理対象表がアーカイブマルチチャンク表の場合に加算してください。
- col_num
-
処理対象表の列数
処理対処表が複数ある場合は,列が最も多い表の列数になります。
- max_rowsz
-
最大行長(単位:バイト)
最大行長については「5.8.2(1) 基本行用ページ数(変数BP(i))の求め方」の行長ROWSZの計算式を基に求めてください。
- idx_num
-
処理対象表に定義されたインデクス数
処理対象表が複数ある場合は,インデクスが最も多く定義された表のインデクス数になります。
- IOA
-
データベースアクセスで使用するメモリ
- 計算式(単位:キロバイト)
-
- TBL
-
処理対象表の管理で使用するメモリ
- 計算式(単位:キロバイト)
-
-
tbl_num
処理対象表の数
-
- DBSTA
-
データベース状態解析で使用するメモリ
- 計算式(単位:キロバイト)
-
(b) 変数PROC_CSTの求め方
変数PROC_CSTは,コスト情報収集時にバッファとして使用するプロセス共通メモリの所要量を求めるときに使用します。
adbgetcstコマンドの-tオプションを省略して実行した場合は,-uオプションに指定した認可識別子のスキーマ内のすべての表について,変数PROC_CSTを求めてください。その中で最も大きい値が,変数PROC_CSTとなります。
次に示す計算式から求めてください。
- 計算式(単位:キロバイト)
PROC_CST= DBHTBLINF+DICTBLINF
変数の説明
- DBHTBLINF
-
処理対象表のコスト情報を取得するときに使用するメモリ
計算式(単位:キロバイト)
- col_num
-
処理対象表の列数
- sql_rthd_num
-
コスト情報収集オプションadb_getcst_scan_rthd_numの指定値
adb_getcst_scan_rthd_numの指定値が0の場合は,1を代入してください。
- coldata(i)
-
各列のデータ長
「6.3.4(2)(c) 変数RTHD_EXESQLSZの求め方」の「表6-8 各データ型のデータ長の一覧」を参照して求めてください。
- hash_size
-
65,536を代入してください。
- cardinarity_num
-
20,000を代入してください。
- DICTBLINF
-
処理対象表のコスト情報をシステム表に格納するときに使用するメモリ
計算式(単位:キロバイト)
- col_num
-
処理対象表の列数
- b_tree_idx_num
-
処理対象表に定義されたB-treeインデクスの数
- text_idx_num
-
処理対象表に定義されたテキストインデクスの数
- row_size
-
処理対象表の行長
計算式
-
coldata(i):各列のデータ長
「6.3.4(2)(c) 変数RTHD_EXESQLSZの求め方」の「表6-8 各データ型のデータ長の一覧」を参照して求めてください。
-
(2) リアルスレッド固有メモリの所要量の求め方(adbgetcstコマンド実行時)
adbgetcstコマンド実行時のリアルスレッド固有メモリ(RTHD_GETCOSTSZ)の所要量は,次に示す計算式から求めてください。
- 計算式(単位:キロバイト)
RTHD_GETCOSTSZ= COSTSQL
- 変数の説明
-
- COSTSQL
-
コスト情報収集時に実行される検索系SQLで使用するメモリ
adbgetcstコマンドを実行すると,処理対象表のコスト情報を収集するために,次に示すSQL文が1回実行されます。
SELECT * FROM "対象表名"
「6.3.4(2)(c) 変数RTHD_EXESQLSZの求め方」および「6.3.4(2)(g) 変数RTHD_EXESQLDICSZの求め方」を参照して,検索系SQLの実行時に使用されるメモリの所要量を,処理対象表ごとに求めてください。その中で,最も大きい値を代入してください。