ページの先頭行へ戻る
HA Database Ready 業務開発ガイド(Open SQL編)
FUJITSU Integrated System

D.2 インデックスサイズの見積り

インデックスサイズの見積り方法について、説明します。

Open SQLは、B-tree、Hash、GiSおよびGINの4種類のインデックスを提供しています(PostgreSQLと同様です)。CREATE INDEX文でインデックスの種類を指定しない場合は、B-treeインデックスを生成します。

ここでは、B-treeインデックスの見積り方法について、説明します。

B-treeインデックスは8キロバイトの固定サイズのページとして保存されます。ページの種類はmetaページ、rootページ、leafページ、internalページ、deletedページ、emptyページがあります。これらのうち、通常leafページが大部分を占めるので、leafページだけを計算します。

表D.3 キーデータ長が512バイト以下の場合の見積り式

項目

見積り式(バイト)

(1)エントリ長

8(注1) + キーデータ長(注2)

注1)エントリヘッド部
注2)キーデータ長の計算方法はデータ型によって異なります。詳細は“D.3 データ型のサイズ”を参照してください。

  • 各エントリは8バイトのバウンダリに配置されるため、キーデータ長は8バイトの倍数となるように調整する必要があります。例えば、計算の結果が28バイトの場合、4を加えて32バイトとしてください。

  • キーデータ長が512バイトを超える場合、キーデータが自動的に圧縮されるときがあります。この場合は、“表D.4 キーデータ長が512バイトより大きい場合の見積り式”の見積り式で見積もってください。

(2)ページの容量

8152(注1)

注1)ページ長(8192)-ページヘッダ(24)-スペシャルデータ(16)= 8152

(3)ページ内エントリ数

(2)ページの容量÷((1)エントリ長 + 4(注1))

注1)ポインター長

  • 算出した(3)ページ内エントリ数は、整数となるよう小数点以下を切り捨てます。

(4)インデックス格納に必要なページ数

総レコード数÷(3)ページ内エントリ数

  • 算出した(4)インデックス格納に必要なページ数は、整数となるよう小数点以下を切り上げます。

(5)スペース量

(4)インデックス格納に必要なページ数×8192(注1)÷使用率(注2)

注1)ページ長
注2)0.7以下を指定してください。

表D.4 キーデータ長が512バイトより大きい場合の見積り式

項目

見積り式(バイト)

(5)スペース量

総レコード数×キーデータ長×圧縮率(注1)÷使用率(注2)

注1)圧縮率はデータ値によって異なるため、1を指定してください。
注2)使用率については、0.7以下を指定してください。