5.8.3 B-treeインデクスのセグメントごとの格納ページ数の求め方
ここでは,B-treeインデクスのセグメントごとの格納ページ数の求め方について説明します。
B-treeインデクスのセグメントは次のとおりです。
-
下位ページ用のセグメント
-
上位ページ用のセグメント
- 〈この項の構成〉
(1) 下位ページ用のセグメントで使用する格納ページ数(変数IP_LOWER(i))の求め方
下位ページ用のセグメントで使用する格納ページ数(変数IP_LOWER(i))は,次に示す計算式から求めてください。
なお,B-treeインデクスにナル値除外指定が指定されている場合,ナル値だけで構成されるキーについては,キーの種類の個数,およびキー値の重複数の平均値を求める計算式から除いてください。
計算式
IP_LOWER(i) = (PIDX_LEAF+PDUP)×R
PIDX_LEAFは,計算式1から求めてください。
PDUPは,計算式2から求めてください。PDUPLISTはキー値ごとの行IDリストページ数の平均,PDUPDIRはキー値ごとの行IDディレクトリページ数の平均になります。
Rは,B-treeインデクスページごとにキーの重複数,またはキー長にばらつきがある場合には1.2〜1.5とし,平均値近辺に収束している場合には1としてください。
計算式1(PIDX_LEAFの求め方)
計算式2(PDUPの求め方)
- 変数の説明
-
-
key_num
キー値の重複が255以下のキーの種類の個数(単位:個)
-
dup_key_num
キー値の重複が256以上のキーの種類の個数(単位:個)
-
dup_key_dup
キー値の重複が256以上のキーの重複数の平均値(単位:個)
-
page_size
データ用DBエリアのページサイズ(単位:バイト)
-
KNPP
1B-treeインデクスページ当たりの平均キー格納件数
次に示す計算式から求めてください。
計算式(KNPPの求め方)
-
pctfree
CREATE INDEX文で指定する未使用領域の比率(単位:%)
未使用領域の比率を指定しない場合は,30%と仮定して計算してください。
-
key_dup
キー値の重複が255以下のキーの重複数の平均値(単位:個)
-
dbarea_file_num
データ用DBエリアファイルの数(単位:個)
-
KEYSZDB
データベース格納キー長(単位:バイト)
「5.8.4 B-treeインデクスのキー長(KEYSZ)の求め方」によって算出された値KEYSZを使用して,次に示す計算式から求めてください。
計算式(KEYSZDBの求め方)
-
(2) 上位ページ用のセグメントで使用する格納ページ数(変数IP_UPPER(i))の求め方
上位ページ用のセグメントで使用する格納ページ数(変数IP_UPPER(i))は,次に示す計算式から求めてください。
計算式
PIDX(k)は,計算式1に示す漸化式から求めてください。PIDX(2)は必ず計算し,PIDX(n)=1になるまで,PIDX(k+1)の計算式を繰り返してください。
Rは,B-treeインデクスページごとにキーの重複数,またはキー長にばらつきがある場合には1.2〜1.5とし,平均値近辺に収束している場合には1としてください。
計算式1(PIDX(k)の求め方)
- 変数の説明
-
-
PIDX_LEAF
「(1) 下位ページ用のセグメントで使用する格納ページ数(変数IP_LOWER(i))の求め方」の計算式1(PIDX_LEAFの求め方)に従って求めてください。
-
page_size
データ用DBエリアのページサイズ(単位:バイト)
-
pctfree
CREATE INDEX文で指定する未使用領域の比率(単位:%)
未使用領域の比率を指定しない場合は,30%と仮定して計算してください。
-
KEYSZDB
データベース格納キー長(単位:バイト)
「(1) 下位ページ用のセグメントで使用する格納ページ数(変数IP_LOWER(i))の求め方」の変数KEYSZDBに従って求めてください。
-