pg_class.reltuples VS pg_stat_all_tables.n_live_tup for estimation of table - Mailing list pgsql-general

From William Dunn
Subject pg_class.reltuples VS pg_stat_all_tables.n_live_tup for estimation of table
Date
Msg-id CAEva=V=bNb6rBZH_AuXQ19pFXqAoyKdRjyFKeR93ckdkXQdgsQ@mail.gmail.com
Whole thread Raw
Responses Re: pg_class.reltuples VS pg_stat_all_tables.n_live_tup for estimation of table
List pgsql-general
Hello,

Does anyone which is a more accurate estimate of a table's live rows: pg_class.reltuples (http://www.postgresql.org/docs/current/static/catalog-pg-class.html) OR pg_stat_all_tables.n_live_tup (http://www.postgresql.org/docs/current/static/monitoring-stats.html#PG-STAT-ALL-TABLES-VIEW)? In my test database their values are not the same.
  • Is pg_class.reltuples an estimation of live tuples only, or is it of all tuples (both live and dead)? I would guess it's live only but that is a guess
  • In the database I am testing:
    • pg_class.reltuples <> pg_stat_all_tables.n_live_tup
    • pg_class.reltuples <> (pg_stat_all_tables.n_live_tup + pg_stat_all_tables.n_dead_tup)

I understand that pg_stat_all_tables is probably the more expensive view to query but I am already querying both so I only care which is more accurate.


Thanks!
Will

Will J. Dunn

pgsql-general by date:

Previous
From: Jony Cohen
Date:
Subject: Index Advice in PG
Next
From: Tom Lane
Date:
Subject: Re: pg_class.reltuples VS pg_stat_all_tables.n_live_tup for estimation of table