3.3.3 ページ内の未使用領域の設定

インデクスデータの格納効率を上げる場合は,ページ内の未使用領域の設定を検討してください。

<この項の構成>
(1) ページ内の未使用領域とは
(2) ページ内の未使用領域を設定するメリット
(3) ページ内の未使用領域に設定する値の目安

(1) ページ内の未使用領域とは

ページ内の未使用領域とは,データインポート時にインデクスデータを格納しない領域のことです。

例えば,ページ内の未使用領域比率に20%を指定した場合,データのインポート時にインデクスページ内に20%の未使用領域を設定します。ページ内の未使用領域の概要を次の図に示します。

ページ内の未使用領域比率は,CREATE INDEX文のPCTFREE句で指定できます。

図3-3 ページ内の未使用領域の概要

[図データ]

説明
  • この図では,ページ内の未使用領域の比率を20%としています。
  • 未使用領域比率は0~99%の範囲で指定でき,省略時は30%が仮定されています。
  • データのインポート時,未使用領域にインデクスデータは格納されません。

ページ内の未使用領域の指定が有効になるのは,データのインポート時だけです。データの追加,更新,削除時には未使用領域の指定は有効になりません。ただし,次に示す場合に限り,未使用領域の指定が有効になります。

■インデクスページスプリットとは
インデクスは,ページごとに管理するキーの範囲を決定しています。キー追加時に,本来そのキーを格納するためのインデクスページに空きがない場合,該当ページが管理しているキー群を二つに分割します。これをインデクスページスプリットといいます。インデクスページスプリットの例を次の図に示します。

図3-4 インデクスページスプリットの例

[図データ]

(2) ページ内の未使用領域を設定するメリット

空き領域がないインデクスページにインデクスデータが追加されると,XDBはインデクスページスプリットを行って新規ページを確保し,インデクスデータを追加します。例えば,未使用領域比率を0%とした場合,行を追加したときにインデクスページスプリットが発生します。未使用領域を設定しておくと,行を追加したときに,その未使用領域にインデクスデータが格納されるため,インデクスページスプリットが発生しません。このように,ページ内の未使用領域を適切に設定すると,インデクスページスプリットのオーバヘッドを削減できます。

ページ内の未使用領域を設定するメリットを次の図に示します。

図3-5 ページ内の未使用領域を設定するメリット

[図データ]

(3) ページ内の未使用領域に設定する値の目安

次のケースに当てはまる場合は,既定値(未使用領域比率30%)よりも小さな値を指定してください。

未使用領域の比率の目安となる計算式を次に示します。

計算式

ページ内の未使用領域の比率=↑INS÷(INITROW+INS)↑×100  (単位:%)

変数の説明
INITROW:インポート時の表の行数
INS:将来予測される追加行数