Here is a potential problem with the auto-vacuum daemon, and I'm wondering if anyone has considered this.  To avoid transaction ID wraparound, the auto-vacuum daemon will periodically determine that it needs to do a DB-wide vacuum, which takes a long time.  On our system, it is on the order of a couple of weeks.  (The system is very busy and there is a lot of I/O going on pretty much 24/7).  During this period of time, there is nothing to automatically analyze any of the tables, leading to further performance problems.  What are your thoughts on having the DB-wide vacuum running on a separate thread so that the daemon can concurrently wake up and take care of analyzing tables?

Reply via email to