インデクスの格納ページ数の計算方法について説明します。
(a) 計算式中で使用する変数
計算式中で使用する変数を説明します。
- PGSZ:インデクス用DBエリアのページ長(単位:バイト)
- pf:CREATE INDEX文のPCTFREE句で指定する未使用領域の比率(単位:%)
- 未使用領域の比率を指定しない場合は,30%で計算してください。
- 作業表のインデクスの場合は,0%で計算してください。
- k:キー値の重複が255以下のキーの種類の個数
- kn:キー値の重複が255以下のキーの重複数の平均値
- dk:キー値の重複が256以上のキーの種類の個数
- dkn:キー値の重複が256以上のキーの重複数の平均値
- kl:DB格納キー長(単位:バイト)
- 「表3-5 インデクスのキー長一覧」によって算出された値をklbとし,次の計算式によって求めます
ただし,複数列インデクスのキー長klbは,「表3-5 インデクスのキー長一覧」の複数列インデクスの欄を基に全構成列のキー長を加算したものとなります。
計算式中で使用するインデクスのキー長の一覧を次の表に示します。
表3-5 インデクスのキー長一覧
| 項番 |
分類 |
データ型 |
キー長(単位:バイト) |
| 単一列インデクス |
複数列インデクス |
| 固定長※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 |
- (凡例)
- 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
All Rights Reserved. Copyright (C) 2008, Hitachi, Ltd.