[pgsql-jp: 32170] インデックスの再構築について

Ebihara, Yuichiro Yuichiro.Ebihara @ jp.sony.com
2004年 2月 4日 (水) 11:08:01 JST


こんにちは、海老原です。

インデックスの定期的な再構築が必要になるケースがありますが、その
やり方に関する質問です。

REINDEXコマンドは元表に対してACCESS EXCLUSIVEを獲得します。
このことはインデックスの再構築中は、該当テーブルへの全てのアクセス
(SELECT含む)がブロックされることを意味するはずです。

インデックス再構築の別の方法として、DROP & CREATEも考えられる
と思います。

CREATE INDEXはテーブルに対しSHAREモードでロックを獲得します。
(DROP INDEXの獲得するロックモードは定かではありませんが、どうせ
ごく短い時間だろうから問題にしない)

ということは、インデックスの作成中は更新(INSERT,UPDATE,DELETE)
はブロックされるものの、参照(SELECT)は可能なはずです。

そのような保守作業は、DBアクセスを禁止した上で行うのが基本ですが、
それにしてもREINDEXコマンドの有用性を理解できません。

私の理解に何か勘違いなどありますか?
コメントなどいただけるとうれしいです。
よろしくお願いします。

--
海老原 雄一郎 / EBIHARA Yuichiro
E-mail: Yuichiro.Ebihara @ jp.sony.com




pgsql-jp メーリングリストの案内