David Mullineux <dmullx(at)gmail(dot)com> writes:
> 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 ?
If the table is sufficiently large, taking a sample of a single row
from each of 30000 different pages is the correct behavior. Taking
more than one row from each of a smaller set of pages would give a
nonrandom (because clumped) sample.
regards, tom lane