Hannu Krosing <hannu(at)tm(dot)ee> writes: > Could I avoid having a transaction at all?
Not really; too much of the database access infrastructure is tied to transaction stuff ... even facilities as basic as memory management.
> As VACUUM is not "transactional" in the sense that it does not change > anything visible to users ever, can't be undone by rollback, etc... , > could it be possible to create enough "transaction-like" environment for > it to really run outside of transactions. Perhaps just advancing > oldestXmin at certain intervals ?
I wonder whether you could avoid advertising the VACUUM's XID in PGPROC. Not sure that this can work, but it would be a lot simpler than stopping and starting transactions ...