Hitachi

Hitachi Advanced Data Binder システム構築・運用ガイド


5.3.4 B-treeインデクスのインデクスページ内の未使用領域の確保(PCTFREE)

CREATE INDEX文のPCTFREEで,B-treeインデクスのインデクスページ内の未使用領域をどれだけ確保するか指定できます。

B-treeインデクスが定義されている表に対して行を追加した場合,または行を更新した場合に,インデクスキーの格納対象となるインデクスページに未使用領域がないと,B-treeインデクスのインデクスページスプリットが発生します。B-treeインデクスのインデクスページスプリットについては,「(2) B-treeインデクスのインデクスページスプリット」を参照してください。

B-treeインデクスのインデクスページスプリットが発生すると,ディスクのI/O回数が増加するため,HADBの性能が低下するおそれがあります。そのため,操作系SQLのINSERT文による行の追加,およびUPDATE文による行の更新を行う表に定義するB-treeインデクスについては,インデクスページ内に未使用領域を確保してください。

〈この項の構成〉

(1) B-treeインデクスのインデクスページ内に未使用領域を確保するときの目安

B-treeインデクスのインデクスページ内に未使用領域を確保するときの目安を次に示します。

表に対して追加および更新する行数が見積もれる場合

表に対して追加および更新する行数分,インデクスキーが増加します。未使用領域には,次に示す計算式で求めた値を指定してください。

計算式(単位:%)

[図データ]

データページ構築時の行数とは,対象の表に初めてadbimportコマンドを実行して格納した表データの行数のことです。

表に対して追加および更新する行数が見積もれない場合

未使用領域には30%(PCTFREEの省略値)を指定してください。

表に対して追加および更新を行わない場合(参照だけを行う場合)

未使用領域には0%を指定してください。

次に示すコマンドを実行すると,PCTFREEに指定した未使用領域の比率に従ってデータが格納されます。

(2) B-treeインデクスのインデクスページスプリット

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

図5‒8 B-treeインデクスのインデクスページスプリットの例

[図データ]