SQL 例
3.6 インデクス用 DB エリアの容量見積もり
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 インデクスのキー長一覧
(凡例)
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
構成列が固定長の列だけのインデクスのデータ長を示します。構成列中にナル値を 含むキーの場合には,全体のキー長を算出するときに,構成列数分のキー長を合計
項番 分類 データ型 キー長(単位:バイト)
単一列インデク ス
複数列インデクス 固定長※1 可変長※2
1 数データ INTEGER 4 4 4+a
2 SMALLINT 2 2 2+a
3 DECIMAL(m,n)※
3
↓m÷2↓+1 ↓m÷2↓+
1
↓m÷2↓+
1+a 4 文字データ CHARACTER(n) n n n+a
5 VARCHAR(n) d+a − d+a
6 時刻印デー タ
TIMESTAMP(p) 7+p÷2 7+p÷2 7+p÷2+a
し,さらにインデクス構成列数を加算してください。
注※
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
計算式