Re: visibility map and reltuples

From: Heikki Linnakangas <heikki(dot)linnakangas(at)enterprisedb(dot)com>
To: "Ned T(dot) Crigler" <crigler(at)users(dot)sourceforge(dot)net>
Cc: pgsql-hackers(at)postgresql(dot)org
Subject: Re: visibility map and reltuples
Date: 2008-12-15 09:01:28
Message-ID: 49461CE8.4050007@enterprisedb.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-hackers

Heikki Linnakangas wrote:
> Ned T. Crigler wrote:
>> It appears that the visibility map patch is causing pg_class.reltuples
>> to be
>> set improperly after a vacuum. For example, it is set to 0 if the map
>> indicated that no pages in the heap needed to be scanned.
>>
>> Perhaps reltuples should not be updated unless every page was scanned
>> during
>> the vacuum?
>
> Yeah, vacuum shouldn't overwrite reltuples if it hasn't scanned all pages.

Because we use reltuples divided by relpages in the planner, we probably
shouldn't update relpages either if we don't update reltuples.
Otherwise, if the table has grown a lot since we last updated reltuples,
the reltuples / relpages ratio would be less, not more, accurate, if
relpages is updated to a new higher value but reltuples is not.

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

In response to

Responses

Browse pgsql-hackers by date

  From Date Subject
Next Message Rushabh Lathia 2008-12-15 09:04:43 Function with defval returns error
Previous Message Heikki Linnakangas 2008-12-15 08:07:09 Re: Sync Rep: First Thoughts on Code