Hitachi

ノンストップデータベース HiRDB Version 9 システム運用ガイド(UNIX(R)用)


14.1.1 インデクスの再編成とは

データの削除(DELETE)及び更新(UPDATE)を繰り返すと,インデクスの格納効率が悪くなり,インデクスを使用した検索をするときの性能が低下します。これを防ぐためには,データベース再編成ユティリティで次に示すどれかの処置をとってください。

ここでは,性能的に優れているインデクスの再編成について説明します。インデクスの再編成の処理概要を次の図に示します。

図14‒1 インデクスの再編成の処理概要

[図データ]

〔説明〕

インデクスのキー情報を検索してインデクス情報ファイルを作成し,その情報を基にインデクスを再配置します。これをインデクスの再編成といいます。インデクスの再編成は,インデクス単位又はインデクス格納RDエリア単位に実行できます。

〈この項の構成〉

(1) 適用基準

大量データの追加,削除,更新によって生じるインデクスの格納ページの無効領域を解放する場合に適用します。

(2) 表の再編成との使い分け

(3) インデクスの再作成との違い

インデクス再作成の処理方式では表データを検索しますが,インデクス再編成の処理方式では表データを検索しません。したがって,インデクスの再作成に比べて処理時間が短くなり,ソート処理も不要なため性能的にも優れています。ただし,プラグインインデクスは再編成できないため,再作成してください。

注※ 次に示す条件を満たす場合に処理時間が短くなります。

表格納RDエリアの使用中ページ数 > インデクス格納RDエリアの使用中ページ数

(4) インデクスの再編成時の注意事項

(5) 再編成の実行時間を短縮する方法

インデクスの再編成をするとき,データベースの更新ログを取得しなければ(ログレスモード又は更新前ログ取得モード),その分の処理時間が短縮されます。データベースの更新ログ取得方式は,pdrorgコマンドの -lオプションで指定します。省略値は更新前ログ取得モードです。

(6) 満杯状態のRDエリア内のインデクスを再編成する場合

インデクスの再編成時,ページ内の未使用領域の比率はCREATE TABLE又はCREATE INDEXのPCTFREEオペランドの指定が適用されます。したがって,満杯状態のRDエリア内のインデクスを再編成すると,インデクスの再編成時にRDエリアの容量不足が発生することがあります。これを防ぐには,pdrorgコマンドのoption文idxfreeオペランドを指定して,CREATE TABLE又はCREATE INDEXのPCTFREEオペランドで指定したページ内の未使用領域の比率を変更してください。

なお,これはあくまで再編成前にRDエリアの拡張がすぐにできないときの暫定的な処置です。データの更新に備えて,CREATE TABLEのPCTFREEオペランドの値を考慮した再編成ができるように,データベース構成変更ユティリティ(pdmodコマンド)でRDエリアを拡張してください。