スケーラブルデータベースサーバ HiRDB Version 8 解説(Windows(R)用)

[目次][用語][索引][前へ][次へ]

7.3.2 インデクスの再編成

インデクスだけを再編成できます。インデクスの再編成を次の図に示します。

図7-14 インデクスの再編成

[図データ]

〔説明〕
インデクスのキー情報を検索してインデクス情報ファイルを作成し,その情報を基にインデクスを再配置します。これをインデクスの再編成といいます。インデクスの再編成は,インデクス単位又はインデクス格納RDエリア単位に実行できます。
<この項の構成>
(1) 適用範囲と適用基準
(2) 表の再編成との使い分け
(3) インデクスの再作成との違い
(4) インデクスの再編成時の注意
(5) 再編成の実行時間を短縮する方法
(6) 空きがない状態のRDエリア内のインデクスを再編成する場合

(1) 適用範囲と適用基準

再編成の対象になるのは,通常のインデクスだけです。プラグインインデクスの再編成はできません。インデクスの再編成は,大量のデータの追加,削除,更新によって生じるインデクス格納ページの無効領域を解放する場合に実行します。

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

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

インデクスを再作成すると表データを検索しますが,インデクスを再編成しても表データを検索しません。そのため,インデクスの再編成は再作成に比べて処理時間が短くなり ,ソート処理も不要なため性能の面で優れています。

注※
次に示す条件を満たす場合に,処理時間が短くなります。
表格納RDエリアの使用中ページ数 > インデクス格納RDエリアの使用中ページ数

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

同じRDエリア内にある複数のインデクスを同時に再編成する場合は,インデクスを再編成する前にpdholdコマンドでRDエリアを閉塞状態にしてください。そして,インデクスの再編成の終了後にpdrelsコマンドでRDエリアの閉塞状態を解除してください。

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

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

(6) 空きがない状態のRDエリア内のインデクスを再編成する場合

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

ただし,これは再編成時の暫定的な処置なので,通常の運用ではデータベース構成変更ユティリティ(pdmod)でRDエリアを拡張するようにしてください。