REINDEXコマンドまたは一連の個々の再構築処理を使用して定期的にインデックスを再構築することが価値がある状況があります。
完全に空になったB-treeインデックスページは再利用のために回収されます。 しかしまだ非効率的な領域使用の可能性があります。 ページからわずかを残しほとんどすべてのインデックスキーが削除されたとしても、ページは割り当てられたまま残ります。 各範囲において、わずかを残しほとんどすべてのキーが削除されるようなパターンで使用されると、領域が無駄に使用されることが分かります。 こうした使用状況では、定期的なインデックス再構築を推奨します。
B-tree以外のインデックスが膨張する可能性はまだよく調査されていません。 B-tree以外の任意の種類のインデックスを使用する際には、インデックスの物理容量を定期的に監視することを勧めます。
また、B-treeインデックスでは、新規に構築したインデックスの方が何度も更新されたインデックスよりもアクセスが多少高速です。 新しく構築されたインデックスでは論理的に近接するページが通常物理的にも近接するからです。 (これはB-tree以外のインデックスではあてはまりません。) アクセス速度を向上させるためだけに周期的にインデックスを再構築することは価値があるかもしれません。
REINDEXはすべての状況で安全に簡単に使うことができます。
このコマンドはデフォルトでACCESS EXCLUSIVE
ロックを要求しますので、CONCURRENTLY
オプションを付けて実行する方が好ましい場合がしばしばあります。その場合にはSHARE UPDATE EXCLUSIVE
ロックしか要求しません。