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?