From: | Andrew Dunstan <andrew(at)dunslane(dot)net> |
---|---|
To: | Tom Lane <tgl(at)sss(dot)pgh(dot)pa(dot)us> |
Cc: | PostgreSQL-development <pgsql-hackers(at)postgresql(dot)org> |
Subject: | Re: pgstattuple documentation clarification |
Date: | 2016-12-20 17:17:49 |
Message-ID: | 03908ad2-db70-172e-a1da-751b29f103b3@dunslane.net |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-hackers |
On 12/20/2016 10:01 AM, Tom Lane wrote:
> Andrew Dunstan <andrew(at)dunslane(dot)net> writes:
>> Recently a client was confused because there was a substantial
>> difference between the reported table_len of a table and the sum of the
>> corresponding tuple_len, dead_tuple_len and free_space. The docs are
>> fairly silent on this point, and I agree that in the absence of
>> explanation it is confusing, so I propose that we add a clarification
>> note along the lines of:
>> The table_len will always be greater than the sum of the tuple_len,
>> dead_tuple_len and free_space. The difference is accounted for by
>> page overhead and space that is not free but cannot be attributed to
>> any particular tuple.
>> Or perhaps we should be more explicit and refer to the item pointers on
>> the page.
> I find "not free but cannot be attributed to any particular tuple"
> to be entirely useless weasel wording, not to mention wrong with
> respect to item pointers in particular.
Well, the reason I put it like that was that in my experimentation,
after I vacuumed the table after a large delete the item pointer table
didn't seem to shrink (at least according to the pgstattuple output), so
we had a page with 0 dead tuples but some non-live line pointer space.
If that's not what's happening then something is going on that I don't
understand. (Wouldn't be a first.)
>
> Perhaps we should start counting the item pointers in tuple_len.
> We'd still have to explain about page header overhead, but that
> would be a pretty small and fixed-size discrepancy.
>
>
Sure, sounds like a good idea. Meanwhile it would be nice to explain to
people exactly what we currently have. If you have a good formulation
I'm all ears.
cheers
andrew
From | Date | Subject | |
---|---|---|---|
Next Message | Alvaro Herrera | 2016-12-20 17:22:14 | Re: [COMMITTERS] pgsql: Implement table partitioning. |
Previous Message | Robert Haas | 2016-12-20 16:58:44 | Re: Protect syscache from bloating with negative cache entries |