Re: Need to run CLUSTER to keep performance

From: Heikki Linnakangas <heikki(at)enterprisedb(dot)com>
To: Rafael Martinez <r(dot)m(dot)guerrero(at)usit(dot)uio(dot)no>
Cc: Tom Lane <tgl(at)sss(dot)pgh(dot)pa(dot)us>, pgsql-performance(at)postgresql(dot)org
Subject: Re: Need to run CLUSTER to keep performance
Date: 2007-11-12 16:31:41
Message-ID: 47387FED.8090408@enterprisedb.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-performance

Rafael Martinez wrote:
> DETAIL: 83623 dead row versions cannot be removed yet.

Looks like you have a long-running transaction in the background, so
VACUUM can't remove all dead tuples. I didn't see that in the vacuum
verbose outputs you sent earlier. Is there any backends in "Idle in
transaction" state, if you run ps?

In 8.1, CLUSTER will remove those tuples anyway, but it's actually not
correct. If the long-running transaction decides to do a select on
hosts-table later on, it will see an empty table because of that. That's
been fixed in 8.3, but it also means that CLUSTER might no longer help
you on 8.3. VACUUM FULL is safe in that sense in 8.1 as well.

--
Heikki Linnakangas
EnterpriseDB http://www.enterprisedb.com

In response to

Responses

Browse pgsql-performance by date

  From Date Subject
Next Message Andrew Sullivan 2007-11-12 16:32:23 Re: Curious about dead rows.
Previous Message Rafael Martinez 2007-11-12 16:11:59 Re: Need to run CLUSTER to keep performance