Re: dead tuple difference between pgstattuple and pg_stat_user_tables

Adrian Klaver <adrian.klaver@aklaver.com>

From: Adrian Klaver <adrian.klaver@aklaver.com>
To: Matthew Tice <mjtice@gmail.com>
Cc: pgsql-general@lists.postgresql.org
Date: 2024-08-23T16:53:15Z
Lists: pgsql-general
On 8/23/24 09:51, Adrian Klaver wrote:
> On 8/23/24 09:33, Matthew Tice wrote:
>>
>>
>> On Fri, Aug 23, 2024 at 10:26 AM Adrian Klaver 
>> <adrian.klaver@aklaver.com <mailto:adrian.klaver@aklaver.com>> wrote:
> 
>>     https://www.postgresql.org/docs/current/pgstattuple.html
>>     <https://www.postgresql.org/docs/current/pgstattuple.html>
>>
>>     pgstattuple_approx(regclass) returns record
>>
>>           pgstattuple_approx is a faster alternative to pgstattuple that
>>     returns approximate results.
>>
>>     Not sure how you get exact count out of that?
>>
>>
>> Maybe the wording is a little confusing to me. Under the section 
>> for pgstattuple_approx:
>> "pgstattuple_approx tries to avoid the full-table scan and returns 
>> exact dead tuple statistics along with an approximation of the number 
>> and size of live tuples and free space."
> 
> Yeah, see what you mean.
> 
> The part that bears more investigating for this case is:
> 
> "It does this by skipping pages that have only visible tuples according 
> to the visibility map (if a page has the corresponding VM bit set, then 
> it is assumed to contain no dead tuples).
> 
> Wondering if PostgreSQl-compatible covers this?

Meant to add:

What happens if you use pgstattuple instead?

-- 
Adrian Klaver
adrian.klaver@aklaver.com