On Wed, Aug 09, 2006 at 11:24:03 -0700, Joel Stevenson <joelstevenson@xxxxxxx> wrote: > I have a database that includes both highly transactional tables and > archive tables - OLTP and OLAP mixed together. Some of the archival > tables, which only experience inserts and reads, not updates or > deletes, contain many millions of rows and so they take a *long* time > to vacuum. Is there currently any means to exclude only these tables > from vacuumdb operations other than explicitly vacuuming all the > other tables and explicity skipping the archival tables? Take a look at: http://developer.postgresql.org/docs/postgres/routine-vacuuming.html#AUTOVACUUM There will be a way to have per table settings in 8.2, though the interface for setting things up is klunky. I also seem to remember some discussion about having a separate transaction for each table being cleaned as a new feature. This helps with some other problems. There will still be an issue if you mix some long running queries with frequent updates in the same database, as the long running queries can prevent recovering a lot of rows in frequently updated tables. I have seen discussions of people brainstorming about this problem, but I don't remember anyone coming up with a great solution.