Re: [PATCHES] pg_freespacemap question

Tom Lane <tgl@sss.pgh.pa.us>

From: Tom Lane <tgl@sss.pgh.pa.us>
To: Mark Kirkwood <markir@paradise.net.nz>
Cc: Tatsuo Ishii <ishii@sraoss.co.jp>, alvherre@commandprompt.com, peter_e@gmx.net, pgsql-hackers@postgresql.org, pgsql-patches@postgresql.org
Date: 2006-03-13T00:43:11Z
Lists: pgsql-hackers
> Tatsuo Ishii wrote:
>> BTW, I noticed difference of outputs from pg_freespacemap and
>> pgstattuple.
>> 
>> I ran pgbench and inspected "accounts" table by using these tools.
>> 
>> pg_freespacemap:
>> sum of bytes: 250712
>> 
>> pgstattuple:
>> free_space: 354880
>> 
>> Shouldn't they be identical?

No, because (a) pgbench vacuums at the start of the run not the end,
and (b) vacuum/fsm disregard pages with "uselessly small" amounts of
free space (less than the average tuple size, IIRC).

I do notice a rather serious shortcoming of pg_freespacemap in its
current incarnation, which is that it *only* shows you the per-page free
space data, and not any of the information that would let you determine
what the FSM is doing to filter the raw data.  The per-relation
avgRequest and lastPageCount fields would be interesting for instance.
Perhaps there should be a second view with one row per relation to
carry the appropriate data.

			regards, tom lane