Ryosuke Hosoi
hosoi****@ryo*****
2008年 3月 28日 (金) 13:23:12 JST
こんにちは、細井です。 最近Ludiaを使いはじめまして、MLも少し前から購読してます。 08/03/25 に kousa****@nttda*****<kousa****@nttda*****> さんは書きました: > PostgreSQL8.3では、デフォルトでautovacuumがONになっているため、 > 全文検索インデックスへの更新が累積すると、岩崎さんが言うように、 > 検索結果に一致しない行が出力されてしまいます。 > この状態を防ぐためには、常にautovacuumをOFFにし、 > 手動VACUUMが必要な場合は、VACUUM後にREINDEXを実行する、 > という運用が必要となります。 PostgreSQLの話になってしまうのですが、特定のテーブルのみ autovacuumを行わないという運用もできるようです。 具体的にはpg_autovacuumというシステムカタログにレコードを作成する ことで、テーブル毎にautovacuumの設定を行えるのですが、その際 pg_autovacuum.enabledにfalseを指定すれば、自動バキュームされなく なるようです。 ==== 設定例ここから ==== ryo=# select oid,relname from pg_class where relname = 'groups'; oid | relname -------+--------- 19123 | groups (1 row) ryo=# insert into pg_autovacuum values (19123, false, -1, -1, -1, -1, -1, -1, -1, -1); INSERT 0 1 Time: 88.973 ms ==== 設定例ここまで ==== より詳しくはマニュアルの ・自動バキュームデーモン http://www.postgresql.jp/document/pg830doc/html/routine-vacuuming.html#AUTOVACUUM ・システムカタログ pg_autovacuum http://www.postgresql.jp/document/pg830doc/html/catalog-pg-autovacuum.html などをご確認ください。 -- Ryosuke Hosoi / 細井 良祐 mailto:rhoso****@gmail***** http://www.ryo.com/