Re: row-attribute in EXPLAIN-output doesn't match count(*)

From: Andreas Joseph Krogh <andreak(at)officenet(dot)no>
To: Richard Huxton <dev(at)archonet(dot)com>
Cc: pgsql-sql(at)postgresql(dot)org
Subject: Re: row-attribute in EXPLAIN-output doesn't match count(*)
Date: 2005-04-14 17:21:38
Message-ID: 200504141921.38476.andreak@officenet.no
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-sql

On Thursday 14 April 2005 19:12, Richard Huxton wrote:
> Andreas Joseph Krogh wrote:
> > Hi everybody, I have table which inly has 298 rows in it, but EXPLAIN
> > ANALYZE shows that PG thinks it has as much as 160057 rows AFAICT from
> > the EXPLAIN-output.
> >
> >
> > I've just run a "VACUUM FULL VERBOSE" on the whole database, which gave
> > the following output on the relevant table(onp_web_index):
> >
> > INFO: vacuuming "public.onp_web_index"
> > INFO: "onp_web_index": found 0 removable, 160057 nonremovable row
> > versions in 206940 pages
> > DETAIL: 159759 dead row versions cannot be removed yet.
>
> A long-lived transaction can still see these row versions, so vacuum
> can't delete them. Until that transaction is committed/rolled back PG
> has to keep the old versions of those rows available, because it might
> be able to see them.
>
> So - do you have an application/client that has had a single transaction
> open for a long time. A very long time unless you update this table a lot.

Hm, it's a web-app, and I don't hold a transaction open for a long time on
purpose, but I have a line which says "idle in transaction" fromn "ps":

postgres 2754 1646 0 Apr06 ? 00:00:07 postgres: nbe nbeweb 127.0.0.1
idle in transaction

And by the way, I lied about the PG-version, it's 7.4.5, not 8.0.0

So, what you're suggesting is that a restart of the webapp should make vacuum
able to delete those dead rows?

--
Andreas Joseph Krogh <andreak(at)officenet(dot)no>
Senior Software Developer / Manager
gpg public_key: http://dev.officenet.no/~andreak/public_key.asc
------------------------+---------------------------------------------+
OfficeNet AS | The most difficult thing in the world is to |
Hoffsveien 17 | know how to do a thing and to watch |
PO. Box 425 Skøyen | somebody else doing it wrong, without |
0213 Oslo | comment. |
NORWAY | |
Phone : +47 22 13 01 00 | |
Direct: +47 22 13 10 03 | |
Mobile: +47 909 56 963 | |
------------------------+---------------------------------------------+

In response to

Responses

Browse pgsql-sql by date

  From Date Subject
Next Message Andrew Sullivan 2005-04-14 17:33:58 Re: row-attribute in EXPLAIN-output doesn't match count(*)
Previous Message Richard Huxton 2005-04-14 17:12:54 Re: row-attribute in EXPLAIN-output doesn't match count(*)