On 16/02/16 12:46, David G. Johnston wrote:
On Mon, Feb 15, 2016 at 4:23 PM, Tatsuo Ishii <is...@postgresql.org
While reading planstats.sgml, I encounted a sentence which I don't
These numbers are current as of the last <command>VACUUM</> or
<command>ANALYZE</> on the table. The planner then fetches the
actual current number of pages in the table (this is a cheap
not requiring a table scan). If that is different from
<structfield>reltuples</structfield> is scaled accordingly to
arrive at a current number-of-rows estimate. In this case the
<structfield>relpages</structfield> is up-to-date so the rows
the same as <structfield>reltuples</structfield>.
I don't understand the last sentence (In this case...). For me it
seems it is talking about the case when replages is not different from
what the planner fetches from the table. If so, why "In this case"?
Isn't "In this case" referrers to the previous sentence (If that is
different from...)? Maybe "In this case" should be "Otherwise" or some
The whole sentence is awkward but you are correct in your reading - and
"otherwise" would be a solid choice.
A long while ago when I wrote that, I was expressing the fact that *in
the example* the numbers matched perfectly, but *in general* the planner
would scale 'em. It still reads that way to me...but change away if you
Though iIt seems the whole thing could be simplified to:
These numbers are current as of the last VACUUM or ANALYZE on the
table. To account for subsequent changes the planner obtains the actual
page count for the table and scales pg_class.reltuples by a factor of
"actual page count" over pg_class.relpages.
The "cheap operation" comment seems gratuitous though could still be
injected if desired.
Well folk interested in performance, like to keep an eye on whether
these sort of probes cost a lot...
Sent via pgsql-hackers mailing list (firstname.lastname@example.org)
To make changes to your subscription: