So, does it mean that VACUUM will never clean dead rows if you have a non-stop transactional activity in your PG database???... (24/7 OLTP for ex.) Rgds, -Dimitri On 8/19/10, Kevin Grittner <Kevin.Grittner@xxxxxxxxxxxx> wrote: > Alexandre de Arruda Paes <adaldeia@xxxxxxxxx> wrote: >> 2010/8/18 Tom Lane <tgl@xxxxxxxxxxxxx> > >>> There's an open transaction somewhere that VACUUM is preserving >>> the tuples for. This transaction need not ever have touched the >>> table, or ever intend to touch the table --- but VACUUM cannot >>> know that, so it saves any tuples that the transaction might be >>> entitled to see if it looked. >>> >>> > carmen=# select * from vlocks where relname='tp93t'; select * >>> > from pg_stat_activity where usename='webpa'; >>> >>> You keep on showing us only subsets of pg_stat_activity :-( > >> select * from pg_stat_activity where usename='webpa'; > > You keep on showing us only subsets of pg_stat_activity :-( > > *ANY* open transaction, including "idle in transaction" including > transactions by other users in other databases will prevent vacuum > from cleaning up rows, for the reasons Tom already gave you. > > What do you get from?: > > select * from pg_stat_activity where current_query <> '<IDLE>' > order by xact_start limit 10; > > -Kevin > > -- > 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