3.6 インデクス用DBエリアの容量見積もり

ここでは,インデクス用DBエリアの容量見積もり方法について説明します。

<この節の構成>
(1) インデクス用DBエリアの容量見積もり計算式
(2) インデクス用DBエリアの総ページ数の計算式
(3) インデクスの格納ページ数の計算方法

(1) インデクス用DBエリアの容量見積もり計算式

インデクス用DBエリアの容量は次に示す計算式から求めてください。

計算式

[図データ]
変数の説明
PGSZ:インデクス用DBエリアのページ長(単位:バイト)
ASZ:インデクス用DBエリアの共用メモリ1面分のサイズ(単位:バイト)
インデクス用DBエリアの共用メモリ1面分のサイズについては,「3.4.4 DBエリアの共用メモリ面数を決めるときの検討項目」を参照してください。
注意
実行したSQLの種類と実行順序によっては,実行系よりも待機系の方がインデクス用DBエリアの容量が大きくなることがあります。そのため,インデクス用DBエリアの見積もりが適切でないと,インデクス用DBエリアの容量不足によって,待機系のXDBだけがプロセスダウンすることがあります。

(2) インデクス用DBエリア総ページ数の計算式

インデクス用DBエリアの総ページ数は次に示す計算式から求めてください。

計算式

[図データ]
変数の説明
PGSZ:インデクス用DBエリアのページ長(単位:バイト)
SS:インデクス用DBエリアのセグメントサイズ
bf:次に示す計算式から求めてください。
[図データ]
SG:インデクス用DBエリアの総セグメント数(次に示す計算式から求めてください)
[図データ]
IS:インデクス用DBエリアに格納されているインデクスの総数
IPi:各インデクスを格納するために必要なページ数
  「(3)インデクスの格納ページ数の計算方法」を参照してください。

(3) インデクス格納ページ数の計算方法

インデクスの格納ページ数の計算方法について説明します。

(a) 計算式中で使用する変数

計算式中で使用する変数を説明します。

PGSZ:インデクス用DBエリアのページ長(単位:バイト)
pf:CREATE INDEX文のPCTFREE句で指定する未使用領域の比率(単位:%)
未使用領域の比率を指定しない場合は,30%で計算してください。
作業表のインデクスの場合は,0%で計算してください。
k:キー値の重複が255以下のキーの種類の個数
kn:キー値の重複が255以下のキーの重複数の平均値
dk:キー値の重複が256以上のキーの種類の個数
dkn:キー値の重複が256以上のキーの重複数の平均値
kl:DB格納キー長(単位:バイト)
表3-5 インデクスのキー長一覧」によって算出された値をklbとし,次の計算式によって求めます

kl=↑klb÷2↑×2

ただし,複数列インデクスのキー長klbは,「表3-5 インデクスのキー長一覧」の複数列インデクスの欄を基に全構成列のキー長を加算したものとなります。

(b) インデクスのキー長一覧

計算式中で使用するインデクスのキー長の一覧を次の表に示します。

表3-5 インデクスのキー長一覧

項番分類データ型キー長(単位:バイト)
単一列インデクス複数列インデクス
固定長※1可変長※2
1数データINTEGER444+a
2SMALLINT222+a
3DECIMAL(m,n)※3↓m÷2↓+1↓m÷2↓+1↓m÷2↓+1+a
4文字データCHARACTER(n)nnn+a
5VARCHAR(n)d+ad+a
6時刻印データTIMESTAMP(p)7+p÷27+p÷27+p÷2+a
(凡例)
a:次に示すどれかの値
  • 単一列インデクスの場合で,定義長が255バイト以下のときは1
  • 単一列インデクスの場合で,定義長が256バイト以上のときは2
  • 複数列インデクスの場合で,インデクスを構成する列の合計が255バイト以下のときは1
  • 複数列インデクスの場合で,インデクスを構成する列の合計が256バイト以上のときは2
複数列インデクスを構成する列の長さについては,マニュアル「TP1/EE/Extended Data Cache SQLプログラミング」の「CREATE INDEX(インデクスの定義)」の「複数列インデクスを構成する列の長さ」を参照してください。
d:実際のデータ長
m,n:正の整数
p:0,2,4,または6
-:該当しません。
注※1
構成列が固定長の列だけのインデクスのデータ長を示します。構成列中にナル値を含むキーの場合には,全体のキー長を算出するときに,構成列数分のキー長を合計し,さらにインデクス構成列数を加算してください。
注※2
構成列に可変長の列を含むインデクスのデータ長を示します。全体のキー長を算出する際には,構成列数分のキー長の合計に,インデクスを構成する列の合計が255バイト以下のときは1を,256バイト以上のときは2を加算します。
複数列インデクスを構成する列の長さについては,マニュアル「TP1/EE/Extended Data Cache SQLプログラミング」の「CREATE INDEX(インデクスの定義)」の「複数列インデクスを構成する列の長さ」を参照してください。
注※3
全体のけた数がmけたで,小数点以下のけた数がnけたの固定小数点数を示します。mを省略した場合は29が仮定されます。
(c) インデクスの格納ページ数

次に示す計算式から,1インデクスページ当たりの平均キー格納件数pkを求めてください。

計算式

[図データ]

次に,インデクスの格納ページ数を次に示す計算式から求めてください。

[図データ]

Piは計算式1に示す漸化式から求めます。Pn=1になるまでPi+1の計算式を繰り返し,その計算結果の総計を求めます。

Qは計算式2から算出します。

Rは,インデクスページごとにキーの重複数やキー長にばらつきがある場合には1.2~1.5とし,平均値近辺に収束している場合には1とします。

計算式1

[図データ]

計算式2

[図データ]