[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 メーリングリストの案内