Thread: pg_class : reltuples

pg_class : reltuples

From
Sandeep Joshi
Date:
What does "reltuples" from pg_class represent?
any comments
Here is something that raised this question:

---------------------------------------
testdb=# select count(*) from zuser3;
  count
---------
 1000000
(1 row)

testdb=#  select count(*) from zuser2;
 count
--------
 100000
(1 row)

testdb=# select count(*) from zuser1;
 count
-------
  1000select relname,relpages,reltuples from pg_class where relname like
'zuse%';
 relname | relpages | reltuples
---------+----------+-----------
 zuser2  |       10 |      1000
 zuser1  |       10 |      1000
 zuser3  |       10 |      1000
(3 rows)

(1 row)



Re: pg_class : reltuples

From
Sandeep Joshi
Date:
I had to run "vacuum" to get corect no.s.  Why is that? I thought
"pg_class" will be upto date.
This makes me nervous.

Sandeep



> What does "reltuples" from pg_class represent?
> any comments
> Here is something that raised this question:
>
> ---------------------------------------
> testdb=# select count(*) from zuser3;
>   count
> ---------
>  1000000
> (1 row)
>
> testdb=#  select count(*) from zuser2;
>  count
> --------
>  100000
> (1 row)
>
> testdb=# select count(*) from zuser1;
>  count
> -------
>   1000

> select relname,relpages,reltuples from pg_class where relname like
> 'zuse%';
>  relname | relpages | reltuples
> ---------+----------+-----------
>  zuser2  |       10 |      1000
>  zuser1  |       10 |      1000
>  zuser3  |       10 |      1000
> (3 rows)
>
> (1 row)

Re: pg_class : reltuples

From
Tom Lane
Date:
Sandeep Joshi <sjoshi@Zambeel.com> writes:
> I had to run "vacuum" to get corect no.s.  Why is that? I thought
> "pg_class" will be upto date.

reltuples and relpages are just updated by vacuum (and maybe create
index).  They're not intended to be accurate values, only approximate
statistics.

            regards, tom lane