Re: Wrong stat on pg_stat_user_tables

From: Glyn Astill <glynastill(at)yahoo(dot)co(dot)uk>
To: Thomas SIMON <tsimon(at)neteven(dot)com>, "pgsql-admin(at)postgresql(dot)org" <pgsql-admin(at)postgresql(dot)org>
Subject: Re: Wrong stat on pg_stat_user_tables
Date: 2016-09-27 14:01:53
Message-ID: 1136485488.10643672.1474984913094@mail.yahoo.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-admin


> From: Thomas SIMON <tsimon(at)neteven(dot)com>
>To: "pgsql-admin(at)postgresql(dot)org" <pgsql-admin(at)postgresql(dot)org>
>Sent: Tuesday, 27 September 2016, 9:20
>Subject: [ADMIN] Wrong stat on pg_stat_user_tables
>
>
>Hi all,
>
>I have strange behavior with a stat of pg_stat_user_tables (explained
>below), where number of live tuples is not the real number at all. (25M
>vs 111M)
>
>
> - select n_live_tup, last_autoanalyze from pg_stat_user_tables where
>relname = 'items'
>
>n_live_tup : 111 191 791
>last_autoanalyze : 2016-09-27 04:03:35.09233+02
>
>
> - select count (1) from items;
> count
>----------
> 25307071
>
>
>I've comparated my 10 biggest tables, only this table gave me wrong results.
>
>Does anyone have an idea about it ?
>

Do you have any long running transactions? The value returned by n_live_tup is an estimate of all the live rows in the table, vs the value you see from count is the number rows visible to the current transaction.

How long between sending the email and running the queries? What output do you see if you analyze the table? And what pg version is this?

I think (I may be wrong) the value you see in pg_stat_user_tables is only an estimate based on a sample of tuples per page in the table, so if you've an uneven distribution of live rows you could see an incorrect value.

What do the planner stats show you? Try:

select reltuples::integer from pg_class where oid = 'items'::regclass;

You might get a better response from the pgsql-general list.

Glyn

In response to

Browse pgsql-admin by date

  From Date Subject
Next Message Alvaro Herrera 2016-09-27 14:51:00 Re: /var/run/postgresql/.s.PGSQL.5432 should be 5433
Previous Message Tom Lane 2016-09-27 13:57:48 Re: Wrong stat on pg_stat_user_tables