[pgsql-jp: 34842] VACUMM時のロックについて
KazuoYasuda
k-yasuda @ h4.dion.ne.jp
2005年 2月 9日 (水) 12:47:40 JST
安田と申します。
いつも参考にさせて頂いてます。
早速ですが、VACUMMとロックの関係について質問させてください。
毎日数十万件のデータの削除と数箇所から毎時数万件の追加変更があり
(AUTOCOMMITは、OFFです)、
メンテナンスの為、データの削除後、VACUMMを実施しています。
⇒バッチコマンド
/usr/local/pgsql/bin/vacuumdb -d noc_log -z -v
⇒バージョン
bash-2.05$ vacuumdb --version
vacuumdb (PostgreSQL) 7.4.6
通常数時間で終了するのですが時々、持ちっきりになり、定時でINSERT/UPDATE
されるSQL文が処理待ちになってしまいます。
この時の該当テーブルのロック状態を調べたところ以下の状態でした。
log 2211859873 AccessExclusiveLock
log 2211859873 AccessShareLock
log 2211859873 RowExclusiveLock
(省略)
log 2211859873 RowExclusiveLock
log 2211859873 RowExclusiveLock
log 2211859873 ShareUpdateExclusiveLock
log 2211859873 ShareUpdateExclusiveLock
---------------------------------------------------
※select c.relname,l.relation,l.mode from pg_class c,pg_locks l
where c.relfilenode=l.relation;
---------------------------------------------------
ここでドキュメントを読むと「AccessExclusiveLock」はVACUMM FULLの時に
設定されると書いてありましたがVACUMMは、条件によりFULL又は、同等の
動作をするのでしょうか?
宜しくお願いします。
--
Kazuo Yasuda <k-yasuda @ h4.dion.ne.jp>
pgsql-jp メーリングリストの案内