Thread: Are the estimates made for number of pages accurate
Hi,
I wanted to know whether the numbers calculated by ANALYZE for number of pages are exact(the relpages field in pg_class). I had the impression that it is exact because during random sampling the number of pages is assumed to be known. Is this true ??
Thank you,
Warm regards,
Sai Sadashiva JK
Sai Sadashiva Kundurmutt <saisadashiva2000@gmail.com> writes: > I wanted to know whether the numbers calculated by ANALYZE for number of > pages are exact(the relpages field in pg_class). If memory serves, relpages is accurate as of the time of the last VACUUM or ANALYZE on the table, but of course it could be arbitrarily out of date later. > I had the impression that > it is exact because during random sampling the number of pages is assumed > to be known. What makes you think that? And even more to the point, what makes you think that we'd rely on relpages for such a purpose? I'd expect a fresh RelationGetNumberOfBlocks call in any scan that had a need to know the table size. regards, tom lane
Thank you for clearing my doubts.
On Sun, 25 Feb 2024 at 22:11, Tom Lane <tgl@sss.pgh.pa.us> wrote:
Sai Sadashiva Kundurmutt <saisadashiva2000@gmail.com> writes:
> I wanted to know whether the numbers calculated by ANALYZE for number of
> pages are exact(the relpages field in pg_class).
If memory serves, relpages is accurate as of the time of the last
VACUUM or ANALYZE on the table, but of course it could be arbitrarily
out of date later.
> I had the impression that
> it is exact because during random sampling the number of pages is assumed
> to be known.
What makes you think that? And even more to the point, what makes
you think that we'd rely on relpages for such a purpose? I'd expect
a fresh RelationGetNumberOfBlocks call in any scan that had a need
to know the table size.
regards, tom lane