6.3.13 adbmergechunkコマンド実行時のメモリ所要量の求め方
adbmergechunkコマンドを実行する場合,HADBサーバは次に示すメモリを使用します。各メモリの所要量を求めてください。
- ■共有メモリ
-
-
プロセス共通メモリ(PROC_MERGCSZ)
-
リアルスレッド固有メモリ(RTHD_MERCHKSZ)
-
- ■プロセスメモリ
-
-
ヒープメモリ(HEAP_MERCHKSZ)
-
それぞれのメモリ所要量の計算式を次に示します。
- 〈この項の構成〉
(1) プロセス共通メモリの所要量の求め方(adbmergechunkコマンド実行時)
adbmergechunkコマンド実行時のプロセス共通メモリ(PROC_MERGCSZ)の所要量は,次に示す計算式から求めてください。
計算式(単位:キロバイト)
PROC_MERGCSZ= Σ(PROC_MNG+PROC_IDX※1+PROC_IDXREBUILD※1+PROC_RNGIDX※2 +PROC_CHUNK_INFO+PROC_DBUPDINF+PROC_RTHDUPDINF +PROC_OBJDELENT※3+PROC_IDXEST※5)※4
- 変数の説明
-
-
PROC_MNG
「(a) 変数PROC_MNGの求め方」を参照して求めてください。
-
PROC_IDX
「(b) 変数PROC_IDXの求め方」を参照して求めてください。
-
PROC_IDXREBUILD
「(c) 変数PROC_IDXREBUILDの求め方」を参照して求めてください。
-
PROC_RNGIDX
「(d) 変数PROC_RNGIDXの求め方」を参照して求めてください。
-
PROC_CHUNK_INFO
「(e) 変数PROC_CHUNK_INFOの求め方」を参照して求めてください。
-
PROC_DBUPDINF
「(f) 変数PROC_DBUPDINFの求め方」を参照して求めてください。
-
PROC_RTHDUPDINF
「(g) 変数PROC_RTHDUPDINFの求め方」を参照して求めてください。
-
PROC_OBJDELENT
「(h) 変数PROC_OBJDELENTの求め方」を参照して求めてください。
-
PROC_IDXEST
B-treeインデクスの容量見積もり情報
「(i) 変数PROC_IDXESTの求め方」を参照して求めてください。
-
- 注※1
-
処理対象インデクスにB-treeインデクスが含まれる場合に加算してください。
- 注※2
-
処理対象インデクスにレンジインデクスが含まれる場合に加算してください。
- 注※3
-
クラウドストレージ機能を使用する場合に加算してください。
- 注※4
-
複数のadbmergechunkコマンドを同時に実行する場合は,各adbmergechunkコマンドが使用するメモリ所要量を求めてください。そして,それぞれで求めたメモリ所要量を合計してください。
- 注※5
-
次のどちらかの条件に該当する場合に加算します。
-
マージチャンクオプションadb_mergechunk_dvbix_rthd_useにVARIABLEを指定してadbmergechunkコマンドを実行する場合
-
サーバ定義のadb_cmd_dvbix_rthd_useオペランドにVARIABLEを指定し,マージチャンクオプションadb_mergechunk_dvbix_rthd_useの指定を省略してadbmergechunkコマンドを実行する場合
-
(a) 変数PROC_MNGの求め方
変数PROC_MNGは,次に示す計算式から求めてください。
- 計算式(単位:キロバイト)
-
PROC_MNG= 5+DIC+IOA+SCAN+IDXRBLDBUF_CTL+STS+PAGEALLOC+CHUNK+PROC_AUDINFSZ※
- 注※
-
監査証跡機能が有効な場合に加算してください。
変数の説明
- DIC:処理対象表の定義情報を取得するメモリ
-
「6.3.6 adbimportコマンド実行時のメモリ所要量の求め方」の「(1) プロセス共通メモリの所要量の求め方(adbimportコマンド実行時)」の「(a) 変数PROC_IMPTの求め方」の変数DICを参照してください。
- IOA:データベースアクセスで使用するメモリ
-
次に示す計算式から求めてください。
- 計算式(単位:キロバイト)
-
IOA= sql_size+(scan_buff_size+offset_area×2)×scan_rthd
-
sql_size
次に示す計算式から求めてください。
32+1,024
-
scan_buff_size
次に示す計算式から求めてください。
マージチャンクオプションadb_mergechunk_scan_buff_sizeの指定値×1,024
-
offset_area
次に示す計算式から求めてください。
(8×処理対象インデクスの構成列数×(scan_buff_size×1,024
÷(処理対象インデクスの構成列長の合計値+8)))÷1,024
-
scan_rthd
次に示す計算式から求めてください。
↓(マージチャンクオプションadb_mergechunk_rthd_numの指定値-1)÷2↓
-
- SCAN:インデクスレコードファイルの出力処理で必要となるメモリ
-
次に示す計算式から求めてください。
- 計算式(単位:キロバイト)
-
SCAN= ↑(write_size×scan_rthd×b-tree_index_num)↑
-
write_size
マージチャンクオプションadb_mergechunk_dvix_wtbuff_sizeの指定値
-
scan_rthd
次に示す計算式から求めてください。
↓(マージチャンクオプションadb_mergechunk_rthd_numの指定値-1)÷2↓
-
b-tree_index_num
処理対象のB-treeインデクス数
-
- IDXRBLDBUF_CTL:マージチャンク用バッファ制御情報
-
次に示す計算式から求めてください。
- 計算式(単位:キロバイト)
-
IDXRBLDBUF_CTL= ↑(248+BUFBLK)÷1,024↑×scan_rthd
-
BUFBLK
「6.3.4 通常運用時のメモリ所要量の求め方」の「(1) プロセス共通メモリの所要量の求め方(通常運用時)」の「(f) 変数PROC_UPDSZの求め方」の変数BUFBLKを参照してください。
-
scan_rthd
次に示す計算式から求めてください。
↓(マージチャンクオプションadb_mergechunk_rthd_numの指定値-1)÷2↓
-
- STS:ステータス情報を退避するメモリ
-
次に示す計算式から求めてください。
計算式(単位:キロバイト)
- idx_num
-
処理対象のインデクス数
- b_tree_idx_num
-
処理対象表に定義されたB-treeインデクスの数
- range_idx_num
-
処理対象表に定義されたレンジインデクスの数
- scan_rthd
-
次に示す計算式から求めてください。
↓(マージチャンクオプションadb_mergechunk_rthd_numの指定値-1)÷2↓
- text_idx_num
-
処理対象表に定義されたテキストインデクスの数
- PAGEALLOC:マージチャンク用ページ割り当て制御情報
-
次に示す計算式から求めてください。
- 計算式(単位:キロバイト)
-
PAGEALLOC= dividx_rthd×310
-
dividx_rthd
次に示す計算式から求めてください。
マージチャンクオプションadb_mergechunk_rthd_numの指定値-1
-
- CHUNK:チャンク管理ブロック
-
次に示す計算式から求めてください。
- 計算式
-
CHUNK= ↑(8×(chunk_num×2)+30,000)÷1,024↑
-
chunk_num
処理対象表に作成されているチャンク数
-
- PROC_AUDINFSZ
-
「6.3.3 HADBサーバ開始時のメモリ所要量の求め方」の「(3) プロセス共通メモリの所要量の求め方(HADBサーバ開始時)」の「(t) 変数AUDINFの求め方」にある変数PROC_AUDINFSZを参照してください。
(b) 変数PROC_IDXの求め方
変数PROC_IDXは,次に示す計算式から求めてください。
計算式(単位:キロバイト)
変数の説明
- KEYSZ
-
B-treeインデクスのキー長(単位:バイト)
「5.8.4 B-treeインデクスのキー長(KEYSZ)の求め方」を基に,B-treeインデクスのキー長を求めてください。
なお,可変長データのB-treeインデクスのキー長を求める際は,「表5‒19 B-treeインデクスのキー長一覧」中の「実際のデータ長」を「データの定義長」で計算してください。
また,処理対象表に複数のB-treeインデクスが定義されている場合は,定義されたB-treeインデクスの中で最大のキー長を使用してください。
- scan_rthd
-
次に示す計算式から求めてください。
↓(マージチャンクオプションadb_mergechunk_rthd_numの指定値-1)÷2↓
- rd_buff_size
-
マージチャンクオプションadb_mergechunk_dvix_rdbuff_sizeの指定値
- ld_buff_size
-
マージチャンクオプションadb_mergechunk_dvix_wtbuff_sizeの指定値
- CTRL
-
-
インデクスのインデクス構成列が固定長の場合
10バイトを代入してください。
-
インデクスのインデクス構成列に可変長を含む場合
12バイトを代入してください。
-
- text_idx_num
-
処理対象表に定義されたテキストインデクス数
- dividx_rthd
-
次に示す計算式から求めてください。
マージチャンクオプションadb_mergechunk_rthd_numの指定値-1
- b_tree_idx_num
-
処理対象のB-treeインデクス数
(c) 変数PROC_IDXREBUILDの求め方
変数PROC_IDXREBUILDは,次に示す計算式から求めてください。
- 計算式(単位:キロバイト)
-
- idx_num
-
再作成対象のB-treeインデクス数
- PROC_IDXREBUILD_MEM(k)
-
次に示す計算式から求めてください。
計算式(単位:キロバイト)
PROC_IDXREBUILD_MEM(k)= ↑(184+256×idx_col_num+(18+256×↑idx_lv÷16↑)×dividx_rthd +KEYSZ+(idx_col_num+1)×2+4)÷1,024↑
-
idx_col_num
B-treeインデクスのインデクス構成列数
-
idx_lv
B-treeインデクスの段数
「5.8.3 B-treeインデクスのセグメントごとの格納ページ数の求め方」の「(2) 上位ページ用のセグメントで使用する格納ページ数(変数IP_UPPER(i))の求め方」の,計算式1(PIDX(k)の求め方)の漸化式を計算して,PIDX(n)=1となったときのnの値を代入してください。
ただし,PIDX(1)=1の場合は,B-treeインデクスの段数は2としてください。
-
dividx_rthd
次に示す計算式から求めてください。
マージチャンクオプションadb_mergechunk_rthd_numの指定値-1
-
KEYSZ:B-treeインデクスのキー長(単位:バイト)
「5.8.4 B-treeインデクスのキー長(KEYSZ)の求め方」を基に,B-treeインデクスのキー長を求めてください。
なお,可変長データのB-treeインデクスのキー長を求める際は,「表5‒19 B-treeインデクスのキー長一覧」中の「実際のデータ長」を「データの定義長」で計算してください。
-
(d) 変数PROC_RNGIDXの求め方
変数PROC_RNGIDXは,次に示す計算式から求めてください。
- 計算式(単位:キロバイト)
-
PROC_RNGIDX= PROC_RNG_BATCREATE※1+PROC_RNG_BATCRT_WITHREC※2
- 注※1
-
--concurrency-priorオプションを指定しないでadbmergechunkコマンドを実行する場合に加算してください。
- 注※2
-
--concurrency-priorオプションを指定してadbmergechunkコマンドを実行する場合に加算してください。
変数の説明
- PROC_RNG_BATCREATE
-
次に示す計算式から求めてください。
計算式(単位:キロバイト)
PROC_RNG_BATCREATE= ↑64×rngidx_num÷1,024↑
- rngidx_num
-
一括更新対象のレンジインデクスの数
- PROC_RNG_BATCRT_WITHREC
-
次に示す計算式から求めてください。
計算式(単位:キロバイト)
PROC_RNG_BATCRT_WITHREC= ↑( (8,576+128×pageimg_entcnt+1,104×crt_recfile_rthd)×rngidx_num +sum_pageimg_size )÷1,024↑
- pageimg_entcnt
-
次に示す計算式から求めてください。
計算式(単位:個)
pageimg_entcnt= MAX(128 , crt_recfile_rthd×2)
- crt_recfile_rthd
-
次に示す計算式から求めてください。
計算式(単位:個)
crt_recfile_rthd= ↓(マージチャンクオプションadb_mergechunk_rthd_numの指定値-1)÷2↓
- rngidx_num
-
一括更新対象のレンジインデクスの数
- sum_pageimg_size
-
次に示す計算式から求めてください。
計算式(単位:キロバイト)
- rngidx_num
-
一括更新対象のレンジインデクスの数
- page_size(i)
-
一括更新の対象となるi番目のレンジインデクスが格納されているデータ用DBエリアのページサイズ(単位:バイト)
「表6‒3 DBエリアのページサイズ」のデータ用DBエリアのページサイズを参照して求めてください。
- PGGRPRI(i)
-
一括更新の対象となるi番目のレンジインデクスのページグループ数
「5.8.6 レンジインデクスを格納するセグメント数の求め方」の「(1) 変数SGRIの求め方」の「PGGRPRI」を参照してください。
(e) 変数PROC_CHUNK_INFOの求め方
変数PROC_CHUNK_INFOは,次に示す計算式から求めてください。
- 計算式(単位:キロバイト)
-
PROC_CHUNK_INFO= ↑(1+index_num)×120×(chunk_num+1)÷1,024↑
- 変数の説明
-
index_num:マージチャンク対象表に対して定義したインデクスの数
chunk_num:マージチャンク対象表のチャンク数の最大値
なお,adbmergechunkコマンドを実行すると,変数PROC_CHUNK_INFOで求められるサイズ分,プロセス共通メモリが確保されます。adbmergechunkコマンドが完了すると,確保されたプロセス共通メモリは解放されます。
しかし,次の理由で削除仕掛中のチャンクが残っている場合,確保されたプロセス共通メモリは解放されません。削除仕掛中のチャンクをすべて削除すると,解放されます。
-
実行中のadbmergechunkコマンドが,マージ先チャンクの完成からマージ元チャンクの削除完了までの間に中断した場合
adbcancelコマンドを実行したとき,HADBサーバでメモリ不足が発生したときなどが該当します。
-
adbmergechunkコマンドの--purge-chunkオプションにNOWAITを指定して実行した場合に,マージチャンク対象の表を参照している処理が存在したとき
(f) 変数PROC_DBUPDINFの求め方
変数PROC_DBUPDINFは,次に示す計算式から求めてください。なお,マルチノード機能を使用するかどうかで,計算式が異なります。
マルチノード機能を使用しない場合の計算式(単位:キロバイト)
マルチノード機能を使用する場合の計算式(単位:キロバイト)
変数の説明
- DBUPDINF_ENT_NUM
-
DBエリア,表,インデクス,およびチャンク更新情報のエントリ数
次に示す計算式から求めてください。なお,マルチノード機能を使用するかどうかで,計算式が異なります。
マルチノード機能を使用しない場合の計算式(単位:個数)
マルチノード機能を使用する場合の計算式(単位:個数)
- index_num
-
マージチャンク対象表に定義しているインデクス数
- chunk_num
-
マージするチャンク数
(g) 変数PROC_RTHDUPDINFの求め方
変数PROC_RTHDUPDINFは,次に示す計算式から求めてください。
- 計算式(単位:キロバイト)
-
変数の説明
- rthd_num
-
次に示す計算式から求めてください。
マージチャンクオプションadb_mergechunk_rthd_numの指定値-1
(h) 変数PROC_OBJDELENTの求め方
変数PROC_OBJDELENTは,次に示す計算式から求めてください。
- 計算式(単位:キロバイト)
-
PROC_OBJDELENT=↑((80+32,768)×128×dbarea_num)÷1,024↑
変数の説明
- dbarea_num
-
adbmergechunkコマンドの実行対象表,およびその表に定義するインデクスを格納するDBエリアの数
(i) 変数PROC_IDXESTの求め方
変数PROC_IDXESTは,次に示す計算式から求めてください。
計算式(単位:キロバイト)
PROC_IDXEST=↑{4,120+8×RTHNUM+(8×idx_num+Σ(ESTINF)+4,096)×scan_rthd}÷1,024↑
変数の説明
- RTHNUM:総リアルスレッド数
-
「6.3.3 HADBサーバ開始時のメモリ所要量の求め方」の「(3) プロセス共通メモリの所要量の求め方(HADBサーバ開始時)」の「(a) 変数SCIの求め方」の変数RTHNUMを参照してください。
- idx_num
-
処理対象表に定義するB-treeインデクスの数
- Σ(ESTINF)
-
処理対象表に定義するB-treeインデクスごとにESTINFを次に示す計算式から求めて,求めた値を合計してください。
計算式(単位:バイト)
ESTINF=56+8×MIN(65,535 ,ESTENT_NUM)+48×ESTENT_NUM
- ESTENT_NUM
-
次に示す計算式から求めてください。
ESTENT_NUM= MAX{256 , ↓MAX{1 ,↓(↓(page_size×(100-pctfree))÷100↓-80)÷(KEYSZDB+22)↓} ×↓2,097,152÷page_size↓÷scan_rthd↓×2 }
- page_size
-
B-treeインデクスを格納するデータ用DBエリアのページサイズ(単位:バイト)
- pctfree
-
CREATE INDEX文のPCTFREEオペランドに指定する未使用領域の比率(単位:%)
未使用領域の比率を指定しない場合は,30%と仮定して計算してください。
- KEYSZDB
-
データベース格納キー長(単位:バイト)
「5.8.3 B-treeインデクスのセグメントごとの格納ページ数の求め方」の「(1) 下位ページ用のセグメントで使用する格納ページ数(変数IP_LOWER(i))の求め方」の変数KEYSZDBを参照してください。ただし,可変長のデータは,常にキー長を定義長として求めてください。
- scan_rthd
-
次に示す計算式から求めてください。
↓(マージチャンクオプションadb_mergechunk_rthd_numの指定値-1)÷2↓
(2) リアルスレッド固有メモリの所要量の求め方(adbmergechunkコマンド実行時)
adbmergechunkコマンド実行時のリアルスレッド固有メモリ(RTHD_MERCHKSZ)の所要量は,次に示す計算式から求めてください。
計算式(単位:キロバイト)
RTHD_MERCHKSZ= IDXRBLDBUF+RTHD_SCAN+SORTIOBUF※1+SORTBUF※1+RTHD_IDXREC※1 +RTHD_IDXREBUILD※1+RTHD_RNGIDX※2+RTHD_TXTIDX※3+CHUNKINF※4
- 変数の説明
-
-
IDXRBLDBUF
「(a) 変数IDXRBLDBUFの求め方」を参照して求めてください。
-
RTHD_SCAN
「(b) 変数RTHD_SCANの求め方」を参照して求めてください。
-
SORTIOBUF
「(c) 変数SORTIOBUFの求め方」を参照して求めてください。
-
SORTBUF
「(d) 変数SORTBUFの求め方」を参照して求めてください。
-
RTHD_IDXREC
「(e) 変数RTHD_IDXRECの求め方」を参照して求めてください。
-
RTHD_IDXREBUILD
「(f) 変数RTHD_IDXREBUILDの求め方」を参照して求めてください。
-
RTHD_RNGIDX
「(g) 変数RTHD_RNGIDXの求め方」を参照して求めてください。
-
RTHD_TXTIDX
「(h) 変数RTHD_TXTIDXの求め方」を参照して求めてください。
-
CHUNKINF
「(i) 変数CHUNKINFの求め方」を参照して求めてください。
-
- 注※1
-
B-treeインデクスを対象にした場合に加算してください。
- 注※2
-
処理対象インデクスにレンジインデクスが含まれる場合に加算してください。
- 注※3
-
処理対象インデクスにテキストインデクスが含まれる場合に加算してください。
- 注※4
-
--concurrency-priorオプションを指定する場合に加算してください。
(a) 変数IDXRBLDBUFの求め方
変数IDXRBLDBUFは,次に示す計算式から求めてください。
計算式(単位:キロバイト)
IDXRBLDBUF=↑(RBLD_SQBUF※1+RBLD_COBUF※2)÷1,024↑
- 注※1
-
クラウドストレージ機能を使用しない場合に加算してください。
- 注※2
-
クラウドストレージ機能を使用する場合に加算してください。
変数の説明
- RBLD_SQBUF:次に示す計算式から求めてください。
-
計算式(単位:バイト)
RBLD_SQBUF= RBLD_SQBLK+RBLD_SQIO+RBLD_SQPGE+RBLD_SQHS
- RBLD_SQBLK:次に示す計算式から求めてください。
-
計算式(単位:バイト)
RBLD_SQBLK= rbld_blknum×(136+↑RBLD_BLKSZ÷rbld_pagesize÷64↑×40)
-
rbld_blknum
マージチャンクオプションadb_mergechunk_buff_blk_numの指定値
-
RBLD_BLKSZ
次に示す計算式から求めてください。
4,096×1,024
-
rbld_pagesize
処理対象表に定義されているB-treeインデクスまたはテキストインデクスが格納されているDBエリアのページサイズのうち,最小の値(単位:バイト)
「6.3.3 HADBサーバ開始時のメモリ所要量の求め方」の「(2) グローバルバッファページの所要量の求め方(HADBサーバ開始時)」にある「表6‒3 DBエリアのページサイズ」のデータ用DBエリアのページサイズを参照して求めてください。
-
- RBLD_SQIO:次に示す計算式から求めてください。
-
計算式(単位:バイト)
RBLD_SQIO= 568×rbld_blknum
-
rbld_blknum
マージチャンクオプションadb_mergechunk_buff_blk_numの指定値
-
- RBLD_SQPGE:次に示す計算式から求めてください。
-
計算式(単位:バイト)
RBLD_SQPGE= (176+rbld_pagesize+BUFLOG)×(RBLD_BLKSZ÷rbld_pagesize)×rbld_blknum
-
rbld_pagesize
処理対象表に定義されているB-treeインデクスまたはテキストインデクスが格納されているDBエリアのページサイズのうち,最小の値(単位:バイト)
「6.3.3 HADBサーバ開始時のメモリ所要量の求め方」の「(2) グローバルバッファページの所要量の求め方(HADBサーバ開始時)」にある「表6‒3 DBエリアのページサイズ」のデータ用DBエリアのページサイズを参照して求めてください。
-
BUFLOG
「6.3.3 HADBサーバ開始時のメモリ所要量の求め方」の「(3) プロセス共通メモリの所要量の求め方(HADBサーバ開始時)」の「(d) 変数BUFGLOBALの求め方」の変数BUFLOGを参照してください。
-
RBLD_BLKSZ
次に示す計算式から求めてください。
4,096×1,024
-
rbld_blknum
マージチャンクオプションadb_mergechunk_buff_blk_numの指定値
-
- RBLD_SQHS:次に示す計算式から求めてください。
-
計算式(単位:バイト)
RBLD_SQHS= 48×rbld_blknum
-
rbld_blknum
マージチャンクオプションadb_mergechunk_buff_blk_numの指定値
-
- RBLD_COBUF:次に示す計算式から求めてください。
-
計算式(単位:バイト)
RBLD_COBUF=RBLD_COBLK+RBLD_COIO+RBLD_COPGE+RBLD_COHS
- RBLD_COBLK:次に示す計算式から求めてください。
-
計算式(単位:バイト)
RBLD_COBLK=rbld_blknum×72
-
rbld_blknum
マージチャンクオプションadb_mergechunk_buff_blk_numの指定値
-
- RBLD_COIO:次に示す計算式から求めてください。
-
計算式(単位:バイト)
RBLD_COIO=136×rbld_blknum
-
rbld_blknum
マージチャンクオプションadb_mergechunk_buff_blk_numの指定値
-
- RBLD_COPGE:次に示す計算式から求めてください。
-
計算式(単位:バイト)
RBLD_COPGE =((176+BUFLOG)×SEGSIZE+RBLD_COBLKSZ)×rbld_blknum
-
BUFLOG
「6.3.3 HADBサーバ開始時のメモリ所要量の求め方」の「(3) プロセス共通メモリの所要量の求め方(HADBサーバ開始時)」の「(d) 変数BUFGLOBALの求め方」の変数BUFLOGを参照してください。
-
SEGSIZE
次のDBエリアのセグメントサイズのうち,最大の値(単位:ページ数)
-
処理対象表が格納されているDBエリア
-
処理対象表に定義されているB-treeインデクスまたはテキストインデクスが格納されているDBエリア
次に示す計算式で求めてください。
SEGSIZE= 1セグメントの容量(単位:バイト)÷page_size
-
-
RBLD_COBLKSZ:次に示す計算式から求めてください。
RBLD_COBLKSZ=32×1,024×1,024
-
rbld_blknum
マージチャンクオプションadb_mergechunk_buff_blk_numの指定値
-
- RBLD_COHS:次に示す計算式から求めてください。
-
計算式(単位:バイト)
RBLD_COHS=40×rbld_blknum
-
rbld_blknum
マージチャンクオプションadb_mergechunk_buff_blk_numの指定値
-
(b) 変数RTHD_SCANの求め方
変数RTHD_SCANは,次に示す計算式から求めてください。
計算式(単位:キロバイト)
RTHD_SCAN = MAX( RTHD_EXESQLSZ , RTHD_EXESQLDICSZ )
- 注
-
次に示すSQL文を実行したものと仮定して,変数RTHD_EXESQLSZおよび変数RTHD_EXESQLDICSZの値をそれぞれ求めてください。
SELECT 選択式※ FROM "対象表名"
- 注※
-
CHAR(16)の列と,処理対象表に定義したインデクスの全インデクス構成列について重複を排除した列を指定したものとして求めてください。
変数の説明
- RTHD_EXESQLSZ
-
「6.3.4 通常運用時のメモリ所要量の求め方」の「(2) リアルスレッド固有メモリの所要量の求め方(通常運用時)」の「(c) 変数RTHD_EXESQLSZの求め方」を参照してください。
- RTHD_EXESQLDICSZ
-
「6.3.4 通常運用時のメモリ所要量の求め方」の「(2) リアルスレッド固有メモリの所要量の求め方(通常運用時)」の「(g) 変数RTHD_EXESQLDICSZの求め方」を参照してください。
(c) 変数SORTIOBUFの求め方
変数SORTIOBUFは,次に示す計算式から求めてください。
- 計算式(単位:キロバイト)
-
SORTIOBUF= sort_io_buff_size×sort_rthd
- 変数の説明
-
-
sort_io_buff_size
16を代入してください。
-
sort_rthd
次に示す計算式から求めてください。
マージチャンクオプションadb_mergechunk_rthd_numの指定値-1
-
(d) 変数SORTBUFの求め方
変数SORTBUFは,次に示す計算式から求めてください。
- 計算式(単位:キロバイト)
-
SORTBUF= (48+sort_buff_size×1,024)×sort_rthd
変数の説明
- sort_rthd
-
次に示す計算式から求めてください。
マージチャンクオプションadb_mergechunk_rthd_numの指定値-1
- sort_buff_size
-
マージチャンクオプションadb_mergechunk_sort_buff_sizeの指定値※
- 注※
-
ソート処理では,作業用ワークファイルが作成されます。このファイルの容量を最小にする変数sort_buff_sizeの計算式を次に示します。変数sort_buff_sizeは,次に示す計算式を満たすようにしてください。ただし,メモリに余裕がない場合,またはほとんどのデータがインデクスキー順に並んでいる場合は,必要以上に大きな値を指定しないでください。
計算式
変数の説明
- REC_SIZE:次に示す計算式から求めてください。
-
計算式
REC_SIZE= (KEYSZ+SYS1)+SYS2
- KEYSZ:処理対象表に定義されたB-treeインデクスのキー長
-
「5.8.4 B-treeインデクスのキー長(KEYSZ)の求め方」を基に,B-treeインデクスのキー長を求めてください。
なお,可変長データのB-treeインデクスのキー長を求める際は,「表5‒19 B-treeインデクスのキー長一覧」中の「実際のデータ長」を「データの定義長」で計算してください。
また,処理対象表に複数のB-treeインデクスが定義されている場合は,定義されたB-treeインデクスの中で最大のキー長を使用してください。
- SYS1:次に示す値を仮定してください。
-
-
処理対象表に定義されたインデクスのインデクス構成列がすべて固定長の場合:10
-
処理対象表に定義されたインデクスのインデクス構成列に可変長を含む場合:12
-
- SYS2:次に示す値を仮定してください。
-
-
処理対象表に定義されたインデクスが可変長の複数列インデクスの場合
次に示す計算式から求めてください。
(インデクス構成列数×4)
-
そのほかのインデクスの場合
0
-
- BLK:次に示す計算式から求めてください。
-
計算式
BLK= REC_SIZE+(KEYSZ+8)+56
- row_num:
-
処理対象表に格納されている行数
- KEY_INF:次に示す計算式から求めてください。
-
計算式
KEY_INF= REC_SIZE+(KEYSZ+8)+28
- COL_INFO:次に示す計算式から求めてください。
-
計算式
COL_INFO= 2,112+(MULTI_KEY_INFO×32)+(KEYSZ+8)
- MULTI_KEY_INFO:次に示す値を仮定してください。
-
-
処理対象表に定義されたB-treeインデクスが可変長の複数列インデクスの場合
次に示す計算式から求めてください。
(インデクス構成列数×2)+2
-
そのほかのB-treeインデクスの場合
5
-
(e) 変数RTHD_IDXRECの求め方
変数RTHD_IDXRECは,次に示す計算式から求めてください。
- 計算式(単位:キロバイト)
-
RTHD_IDXREC= ↑(386+328×(idx_num−1)+32×max_idx_col_num +(64+buf_size×1,024)×2×idx_num)÷1,024↑
- 変数の説明
-
-
idx_num
再作成対象のB-treeインデクス数
-
max_idx_col_num
再作成対象のB-treeインデクスのインデクス構成列数の最大値
-
buf_size
1,024を代入してください。
-
(f) 変数RTHD_IDXREBUILDの求め方
変数RTHD_IDXREBUILDは,次に示す計算式から求めてください。
計算式(単位:キロバイト)
変数の説明
- idx_num
-
再作成対象のB-treeインデクス数
- RTHD_IDXREBUILD_MEM(k)
-
次に示す計算式から求めてください。
- 計算式(単位:キロバイト)
-
RTHD_IDXREBUILD_MEM(k)= ↑(61,458+↑MAX(255,KEYSZ)÷2↑×2+3,070 +↑KEYSZ+CTRL÷8↑×8+MAX(255,KEYSZ)+14 +↓8+page_size×95÷100↓×2)÷1,024↑
- KEYSZ
-
B-treeインデクスのキー長(単位:バイト)
「5.8.4 B-treeインデクスのキー長(KEYSZ)の求め方」を基に,B-treeインデクスのキー長を求めてください。
なお,可変長データのB-treeインデクスのキー長を求める際は,「表5‒19 B-treeインデクスのキー長一覧」中の「実際のデータ長」を「データの定義長」で計算してください。
- CTRL
-
-
インデクス構成列のキー長がすべて固定長の場合
10バイトを代入してください。
-
インデクス構成列のキー長に可変長を含む場合
12バイトを代入してください。
-
- page_size
-
B-treeインデクスが定義されているデータ用DBエリアのページサイズ(単位:バイト)
「6.3.3 HADBサーバ開始時のメモリ所要量の求め方」の「(2) グローバルバッファページの所要量の求め方(HADBサーバ開始時)」にある「表6‒3 DBエリアのページサイズ」のデータ用DBエリアのページサイズを参照して求めてください。
(g) 変数RTHD_RNGIDXの求め方
変数RTHD_RNGIDXは,次に示す計算式から求めてください。
- 計算式(単位:キロバイト)
-
RTHD_RNGIDX= RTHD_RNG_BATCREATE※1+RTHD_RNG_BATCRT_WITHREC※2
- 注※1
-
--concurrency-priorオプションを指定しないでadbmergechunkコマンドを実行する場合に加算してください。
- 注※2
-
--concurrency-priorオプションを指定してadbmergechunkコマンドを実行する場合に加算してください。
変数の説明
- RTHD_RNG_BATCREATE
-
次に示す計算式から求めてください。
計算式(単位:キロバイト)
RTHD_RNG_BATCREATE= ↑(32+208×rngidx_num)×scan_rthd÷1,024↑
- rngidx_num
-
一括更新対象のレンジインデクスの数
- scan_rthd
-
次に示す計算式から求めてください。
計算式(単位:個)
scan_rthd= ↓(マージチャンクオプションadb_mergechunk_rthd_numの指定値-1)÷2↓
- RTHD_RNG_BATCRT_WITHREC
-
次に示す計算式から求めてください。
計算式(単位:キロバイト)
RTHD_RNG_BATCRT_WITHREC= ↑MAX(CRT_RECFILE , CRT_RNGIDX)÷1,024↑
- CRT_RECFILE
-
次に示す計算式から求めてください。
計算式(単位:バイト)
CRT_RECFILE= (32+272×rngidx_num+RNG_IDXREC_WRITE)×crt_recfile_rthd
- rngidx_num
-
一括更新対象のレンジインデクスの数
- RNG_IDXREC_WRITE
-
次に示す計算式から求めてください。
計算式(単位:バイト)
RNG_IDXREC_WRITE= 640+1,049,040×rngidx_num
- rngidx_num
-
一括更新対象のレンジインデクスの数
- crt_recfile_rthd
-
次に示す計算式から求めてください。
計算式(単位:個)
crt_recfile_rthd= ↓(マージチャンクオプションadb_mergechunk_rthd_numの指定値-1)÷2↓
- CRT_RNGIDX
-
次に示す計算式から求めてください。
計算式(単位:バイト)
- page_size(i)
-
一括更新の対象となるi番目のレンジインデクスが格納されているデータ用DBエリアのページサイズ(単位:バイト)
「表6‒3 DBエリアのページサイズ」のデータ用DBエリアのページサイズを参照して求めてください。
- PGGRPRI(i)
-
一括更新の対象となるi番目のレンジインデクスのページグループ数
「5.8.6 レンジインデクスを格納するセグメント数の求め方」の「(1) 変数SGRIの求め方」の「PGGRPRI」を参照してください。
- RNG_IDXREC_READ
-
次に示す計算式から求めてください。
計算式(単位:バイト)
RNG_IDXREC_READ= 64+128×rngidx_num+16×page_size
- rngidx_num
-
再作成対象のレンジインデクスの数
- page_size
-
レンジインデクスが定義されているデータ用DBエリアのページサイズ(単位:バイト)
- crt_rngidx_rthd
-
次に示す計算式から求めてください。
計算式(単位:個)
crt_rngidx_rthd= マージチャンクオプションadb_mergechunk_rthd_numの指定値-1
(h) 変数RTHD_TXTIDXの求め方
変数RTHD_TXTIDXは,次に示す計算式から求めてください。
- 計算式(単位:キロバイト)
-
変数の説明
- idx_num
-
処理対象表に定義されたテキストインデクスの数
- RTHD_TXTIDXBUILD_MEM(k)
-
次に示す計算式から求めてください。
計算式(単位:キロバイト)
- buff_blk_size
-
4,096を代入してください。
- buff_blk_num
-
マージチャンクオプションadb_mergechunk_buff_blk_numの指定値
- idx_div_num
-
k番目のテキストインデクスのインデクス構成列定義長
- txt_sort_buff_size
-
マージチャンクオプションadb_mergechunk_txt_buff_sizeの指定値
(i) 変数CHUNKINFの求め方
変数CHUNKINFは,次に示す計算式から求めてください。
- 計算式(単位:キロバイト)
-
CHUNKINF= ↑(32+32×chunk_num)÷1,024↑
変数の説明
- chunk_num
-
処理対象表のチャンク数
(3) ヒープメモリの所要量の求め方(adbmergechunkコマンド実行時)
adbmergechunkコマンド実行時のヒープメモリ(HEAP_MERCHKSZ)の所要量は,次に示す計算式から求めてください。
- 計算式(単位:キロバイト)
-
HEAP_MERCHKSZ= Σ(505×sort_rthd)※
- 注※
-
複数のadbmergechunkコマンドを同時に実行する場合は,各adbmergechunkコマンドが使用するヒープメモリの所要量を求めてください。そして,それぞれで求めたヒープメモリの所要量を合計してください。
変数の説明
- sort_rthd
-
次に示す計算式から求めてください。
マージチャンクオプションadb_mergechunk_rthd_numの指定値-1