Re: Vacuum full very slow due to nonremovable dead rows...What makes the dead rows non-removable? - Mailing list pgsql-performance

From Steinar H. Gunderson
Subject Re: Vacuum full very slow due to nonremovable dead rows...What makes the dead rows non-removable?
Date
Msg-id 20070222202920.GA1102@uio.no
Whole thread Raw
In response to Vacuum full very slow due to nonremovable dead rows...What makes the dead rows non-removable?  ("Barbara Cosentino" <bcosentino@ncircle.com>)
List pgsql-performance
On Thu, Feb 22, 2007 at 12:19:50PM -0800, Barbara Cosentino wrote:
> I have a table that gets many rows inserted, updated and then deleted,
> consistently throughout the day.  At any point in time this table should
> have no more than 50 actual rows and many times a direct select against
> this table produces no rows.  This table also has a VACUUM FULL ANALYZE
> performed against it about very 30 minutes.

You should not usually need VACUUM FULL; doing so all the time will probably
_decrease_ your performance.

> I noticed the vacuum was taking a considerable amount of time for a table
> with a small number of actual rows.  The output of the first vacuum full
> analyze verbose I performed showed that this table had 3,699,704 dead row
> versions that could not be removed.  This number of dead rows that could
> not be released increased with each vacuum full that was performed. The
> output of the last vacuum full is shown below.

Do you have any long-running transactions going? Those are likely to make
rows nonremovable. Look for idle workers in a transaction.

/* Steinar */
--
Homepage: http://www.sesse.net/

pgsql-performance by date:

Previous
From: "Barbara Cosentino"
Date:
Subject: Vacuum full very slow due to nonremovable dead rows...What makes the dead rows non-removable?
Next
From: Mark Stosberg
Date:
Subject: Using the 8.2 autovacuum values with 8.1