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>, pgsql-general@lists.postgresql.org
Date: 2024-08-23T16:26:51Z
Lists: pgsql-general
On 8/23/24 09:14, Matthew Tice wrote:
> Hi All,
> 
> I'm trying to understand why there's a difference between what 
> pgstattuple reports and pg_stat_user_tables reports (for the number of 
> dead tuples).
> 
> As I understand, pgstattuple and pgstattuple_approx return the exact 
> number of dead tuples (as noted in the documentation) and based on an 

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?


> This is a Google Alloy DB instance running:

https://cloud.google.com/alloydb/docs/overview

"AlloyDB for PostgreSQL is a fully managed, PostgreSQL-compatible 
database service that's designed for your most demanding workloads, 
including hybrid transactional and analytical processing. AlloyDB pairs 
a Google-built database engine with a cloud-based, multi-node 
architecture to deliver enterprise-grade performance, reliability, and 
availability."

Where the important parts are 'PostgreSQL-compatible' and 'Google-built 
database engine'. You probably need to reach out to Google to see what 
that means for this situation.


>  > select version();
> -[ RECORD 1 ]-------------------------
> version | PostgreSQL 14.10 on x86_64-pc-linux-gnu, compiled by Debian 
> clang version 12.0.1, 64-bit
> SELECT 1

-- 
Adrian Klaver
adrian.klaver@aklaver.com