On Fri, Aug 23, 2024 at 10:26 AM Adrian Klaver <adrian.klaver@xxxxxxxxxxx> wrote:
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?
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."
> 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.
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
--
Adrian Klaver
adrian.klaver@xxxxxxxxxxx