OK, so i was going through the autovacuum code and i noticed that when we construct the table list to vacuum in a
databaseper run, we don't process them in a particular order. I mean since we pick the list up from pg_class so it may
beordered on oid? but when we select a database we have a priority algo, which select the db's in XID wraparound
dangerfirst, and that too the in an order that the db nearest to the XID wraparound is picked first <br /><br />So
wouldn'tit make sense to pick up the tables in a similar order as well? like sorting the list on (deadtuples -
calculatedthreshold) this way we will be vacuuming the tables in more need first.<br /><br />Without an order i can
imaginea scenario where a table which is near a wrap-around or has more dead-rows waiting or possible having the XID
warparoundwhile another big table takes a lot of time. <br /><br />With the launcher - worker architecture in 8.3 the
situationwill improve as you can have multiple workers vacuuming multiple tables in parallel, but having some order
therewould also help , i would think.<br /><br clear="all" /> Thanks,<br />-- <br />Usama Munir Dar <a
href="http://www.linkedin.com/in/usamadar">http://www.linkedin.com/in/usamadar</a><br/>Consultant Architect<br
/>Cell:+92321 5020666<br />Skype: usamadar <br />