The problem here is that we're trying to keep an image of a whole world for any transaction which is in most cases will need to get a look on few streets around.. ;-) I understand well that it's respecting the standard and so on, but the background problem that you may see your table bloated just because there is a long running transaction appeared in another database, and if it's maintained/used/etc by another team - the problem very quickly may become human rather technical :-)) So, why simply don't add a FORCE option to VACUUM?.. - In this case if one executes "VACUUM FORCE TABLE" will be just aware about what he's doing and be sure no one of the active transactions will be ever access this table. What do you think?.. ;-) Rgds, -Dimitri On 8/22/10, Robert Haas <robertmhaas@xxxxxxxxx> wrote: > On Sat, Aug 21, 2010 at 9:49 AM, Alexandre de Arruda Paes > <adaldeia@xxxxxxxxx> wrote: >> Only for discussion: the CLUSTER command, in my little knowledge, is a >> intrusive command that's cannot recover the dead tuples too. >> >> Only TRUNCATE can do this job, but obviously is not applicable all the >> time. > > Either VACUUM or CLUSTER will recover *dead* tuples. What you can't > recover are tuples that are still visible to some running transaction. > > -- > Robert Haas > EnterpriseDB: http://www.enterprisedb.com > The Enterprise Postgres Company > > -- > Sent via pgsql-performance mailing list (pgsql-performance@xxxxxxxxxxxxxx) > To make changes to your subscription: > http://www.postgresql.org/mailpref/pgsql-performance > -- Sent via pgsql-performance mailing list (pgsql-performance@xxxxxxxxxxxxxx) To make changes to your subscription: http://www.postgresql.org/mailpref/pgsql-performance