Re: Select max(foo) and select count(*) optimization
Mark Kirkwood <markir@paradise.net.nz>
From: Mark Kirkwood <markir@paradise.net.nz>
To: "D'Arcy J.M. Cain" <darcy@druid.net>
Cc: Shridhar Daithankar <shridhar_daithankar@persistent.co.in>, Postgresql Performance <pgsql-performance@postgresql.org>
Date: 2004-01-06T19:28:45Z
Lists: pgsql-performance
if this situation persists after 'analyze certificate', then you need to: increase the statistics target 'alter table certificate alter column certificate_id set statistics 100' or 'vacuum full certificate' i.e : there are lots of (dead) updated or deleted tuples in the relation, distributed in such a way as to throw off analyze's estimate. regards Mark D'Arcy J.M. Cain wrote: > >Well, I did this: > >cert=# select relpages,reltuples from pg_class where relname= 'certificate'; > relpages | reltuples >----------+------------- > 399070 | 2.48587e+07 >(1 row) > >Casting seemed to help: > >cert=# select relpages,reltuples::bigint from pg_class where relname= >'certificate'; > relpages | reltuples >----------+----------- > 399070 | 24858736 >(1 row) > >But: > >cert=# select count(*) from certificate; >[*Crunch* *Crunch* *Crunch*] > count >---------- > 19684668 >(1 row) > >Am I missing something? Max certificate_id is 20569544 btw. > > >