Re: Vacuum, analyze, and setting reltuples of pg_class - Mailing list pgsql-hackers

From Tom Lane
Subject Re: Vacuum, analyze, and setting reltuples of pg_class
Date
Msg-id 11898.1166046047@sss.pgh.pa.us
Whole thread Raw
In response to Re: Vacuum, analyze, and setting reltuples of pg_class  ("Jim C. Nasby" <jim@nasby.net>)
Responses Re: Vacuum, analyze, and setting reltuples of pg_class  ("Zeugswetter Andreas ADI SD" <ZeugswetterA@spardat.at>)
List pgsql-hackers
"Jim C. Nasby" <jim@nasby.net> writes:
> On Mon, Dec 11, 2006 at 12:08:30PM -0500, Tom Lane wrote:
>> "Greg Sabino Mullane" <greg@turnstep.com> writes:
>>> Short version: is it optimal for vacuum to always populate reltuples
>>> with live rows + dead rows?
>> 
>> If we didn't do that, it would tend to encourage the use of seqscans on
>> tables with lots of dead rows, which is probably a bad thing.

> So then why does vacuum do that? ISTM that it makes more sense for it to
> act the same as analyze and only count live rows.

I think what you misread what I said: it's better to have the larger
count in reltuples so that the planner won't try to use a seqscan when
there are, say, 3 live tuples and 100K dead ones.  The real problem is
that analyze ought to act more like vacuum, but since it presently
ignores deaders altogether, it fails to.
        regards, tom lane


pgsql-hackers by date:

Previous
From: Tom Lane
Date:
Subject: Re: Better management of mergejoinable operators
Next
From: Martijn van Oosterhout
Date:
Subject: Re: Operator class group proposal