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
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."
"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.
Got it, thanks Adrian.
> > 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