Is it a good starting point to the basic reason of doing vacuum? from the manual, "PostgreSQL's VACUUM command must be run on a regular basis for several reasons: To recover disk space occupied by updated or deleted rows. To update data statistics used by the PostgreSQL query planner. To protect against loss of very old data due to transaction ID wraparound. " It seems that only transaction ID wraparound can cause system failure in loading-in new data. For the dead rows problem, it just a matter of space; the data statistics is just relate to the query performance. -- View this message in context: http://postgresql.1045698.n5.nabble.com/count-on-transaction-ID-tp5550894p5558345.html Sent from the PostgreSQL - performance mailing list archive at Nabble.com. -- Sent via pgsql-performance mailing list (pgsql-performance@xxxxxxxxxxxxxx) To make changes to your subscription: http://www.postgresql.org/mailpref/pgsql-performance