Why analyze reports 30000 pages and rows scanned. Why not just rows?

From: David Mullineux <dmullx(at)gmail(dot)com>
To: Postgres General <pgsql-general(at)postgresql(dot)org>
Subject: Why analyze reports 30000 pages and rows scanned. Why not just rows?
Date: 2025-08-19 10:17:58
Message-ID: CAGsyd8UWZr3DiAxTgZqnsJU_LipoL9fhyForcC=B8tzxwEyPLw@mail.gmail.com
Views: Whole Thread | Raw Message | Download mbox | Resend email
Thread:
Lists: pgsql-general

According to docs, analyze ,by default, will try to sample 30000 rows from
a table.
(I've read analyze.c note about Haas and Stokes IBM Research ).

But my question is, why does 'analyze verbose' report that it has scanned
'30000 of NNNN pages, containing NNNN live rows and 0 dead rows; 30000 rows
in sample,....'

As most tables would store more than 1 row per page, I expected that 30000
rows would require a lot fewer than 30000 *pages* to be scanned. Why is it
saying it's scanned 30000 pages instead of only 30000 rows ?

Confused. thanks.

Responses

Browse pgsql-general by date

  From Date Subject
Next Message Fujii Masao 2025-08-19 14:40:05 Re: analyze-in-stages post upgrade questions
Previous Message COURTAULT Francois 2025-08-19 10:09:12 RE: Offline PostgreSQL installation: what are the rpm packages to install ?