6.21.3 adbmergechunkコマンド実行時の作業用一時ファイルの容量見積もり
ここでは,複数のチャンクをマージするために,adbmergechunkコマンド実行時に作成される作業用一時ファイルの容量の求め方について説明します。
インデクスを定義している表に対してadbmergechunkコマンドを実行した場合,次に示すディレクトリ下に作業用一時ファイルが作成されます。
-
-wオプションを指定した場合
指定したディレクトリ下に作成されます。
-
-wオプションを指定しない場合
DBディレクトリ下($DBDIR/ADBWORK)に作成されます。
作業用一時ファイルの容量については,次に示す計算式から求めてください。
計算式(単位:キロバイト)
|
変数の説明
- idx_num
-
定義したB-treeインデクスの数
- RECFILE(i)
-
インデクスレコードファイル
次に示す計算式から求めてください。
計算式(単位:バイト)
RECFILE(i)={KEYSZ(i)+CTRL(i)}×row_num+1,092
- KEYSZ(i)
-
i番目のB-treeインデクスのキー長(単位:バイト)
「5.8.4 B-treeインデクスのキー長(KEYSZ)の求め方」を基に,B-treeインデクスのキー長を求めてください。
なお,可変長データのB-treeインデクスのキー長を求める際は,「表5‒19 B-treeインデクスのキー長一覧」中の「実際のデータ長」を「データの定義長」で計算してください。
- CTRL(i)
-
i番目のB-treeインデクス制御情報
-
インデクス構成列のキー長がすべて固定長の場合:10バイト
-
インデクス構成列のキー長に可変長を含む場合:12バイト
-
- row_num
-
adbmergechunkコマンドの対象表のマージ元チャンクに格納されている行数
- SORTFILE(i)
-
ソート結果用ファイル
次に示す計算式から求めてください。変数KEYSZ(i),変数CTRL(i)および変数row_numについては,上記のインデクスレコードファイル(変数RECFILE(i))の計算式を参照してください。
計算式(単位:バイト)
- TCTRL(i)
-
i番目のテキストインデクス制御情報
-
テキストインデクスの場合
次に示す計算式から求めてください。
計算式
-
テキストインデクスではない場合
0を代入してください。
-
- SORTWORK(i)
-
ソート用ワークファイル
次に示す計算式から求めてください。変数RECFILE(i)および変数row_numについては,上記のインデクスレコードファイル(変数RECFILE(i))の計算式を参照してください。
計算式(単位:バイト)
- IDXWORK(i)
-
B-treeインデクス作成用ワークファイル
次に示す計算式から求めてください。
計算式(単位:バイト)
- KEYSZDB(i)
-
i番目のデータベース格納キー長(単位:バイト)
「5.8.3 B-treeインデクスのセグメントごとの格納ページ数の求め方」の「(1) 下位ページ用のセグメントで使用する格納ページ数(変数IP_LOWER(i))の求め方」の変数KEYSZDBを参照してください。ただし,可変長のデータは,常にキー長を定義長として求めてください。
- PIDX_LEAF
-
B-treeインデクスの1段目のページ数(リーフページ)
「5.8.3 B-treeインデクスのセグメントごとの格納ページ数の求め方」の「(1) 下位ページ用のセグメントで使用する格納ページ数(変数IP_LOWER(i))の求め方」の計算式1(PIDX_LEAFの求め方)に従って求めてください。
- PIDX(2)
-
B-treeインデクスの2段目のページ数
「5.8.3 B-treeインデクスのセグメントごとの格納ページ数の求め方」の「(2) 上位ページ用のセグメントで使用する格納ページ数(変数IP_UPPER(i))の求め方」の計算式1(PIDX(k)の求め方)に従って求めてください。
- tix_num
-
テキストインデクスの数
- TIXWORK(i)
-
テキストインデクス作成用ワークファイル
次に示す計算式から求めてください。
計算式(単位:バイト)
- row_num
-
adbmergechunkコマンドの対象表のマージ元チャンクに格納されている行数
- string_num(i)
-
テキストインデクスのインデクス構成列に格納されている平均文字数
- define_num(i)
-
テキストインデクスのインデクス構成列の定義長
- TIXCORWORK(i)
-
テキストインデクス作成用ワークファイル(表記ゆれ補正検索向け)
テキストインデクスの定義時に,「テキストインデクス表記ゆれ補正指定」を指定した場合に求める必要があります。
次に示す計算式から求めてください。
計算式(単位:バイト)
- row_num
-
adbmergechunkコマンドの対象表のマージ元チャンクに格納されている行数
- string_num(i)
-
テキストインデクスのインデクス構成列に格納されている平均文字数