Column Statistics - How to dertermine for whole database

Started by Ow Mun Hengabout 18 years ago5 messagesgeneral
Jump to latest
#1Ow Mun Heng
Ow.Mun.Heng@wdc.com

Hi,

I finally figure out how come (i think) my analyszing of some specific
tables is taking so freaking long. 12million rows, ~11GB table.

I had some of the columns with the stat level set up to 1000. (this was
previously because I was trying to optimise somethings to make things
faster. ) When the table was small, the analyse of that table went by
pretty fast, until it became bigger, now it's a headache.

So, my investigation found that It was due to the stats level I put into
that column. (normal stat level = 100).

Is there a query to pg_catalog tables to find out which table/column has
the stat level not at default in 1 sweep?

Appreciate any pointers.

#2Adam Rich
adam.r@sbcglobal.net
In reply to: Ow Mun Heng (#1)
Re: Column Statistics - How to dertermine for whole database

Is there a query to pg_catalog tables to find out which table/column
has
the stat level not at default in 1 sweep?

Try this:

select c.relname, a.attname, attstattarget
from pg_catalog.pg_attribute a, pg_catalog.pg_class c,
pg_catalog.pg_namespace n
where a.attrelid = c.oid and c.relnamespace=n.oid
and n.nspname = 'public' and a.attnum > 0

The value "-1" means to use the default (set in postgreql.conf)

#3Ow Mun Heng
Ow.Mun.Heng@wdc.com
In reply to: Adam Rich (#2)
Re: Column Statistics - How to dertermine for whole database

On Wed, 2008-03-12 at 21:33 -0500, Adam Rich wrote:

select c.relname, a.attname, attstattarget
from pg_catalog.pg_attribute a, pg_catalog.pg_class c,
pg_catalog.pg_namespace n
where a.attrelid = c.oid and c.relnamespace=n.oid
and n.nspname = 'public' and a.attnum > 0

Funny, that does not work.

note : I did change the nspace value to reflect the DB I'm
using/querying

I've even changed the stat level to 200 (default is 100 or -1)

#4Scott Marlowe
scott.marlowe@gmail.com
In reply to: Ow Mun Heng (#3)
Re: Column Statistics - How to dertermine for whole database

On Wed, Mar 12, 2008 at 8:45 PM, Ow Mun Heng <Ow.Mun.Heng@wdc.com> wrote:

On Wed, 2008-03-12 at 21:33 -0500, Adam Rich wrote:

select c.relname, a.attname, attstattarget
from pg_catalog.pg_attribute a, pg_catalog.pg_class c,
pg_catalog.pg_namespace n
where a.attrelid = c.oid and c.relnamespace=n.oid
and n.nspname = 'public' and a.attnum > 0

Funny, that does not work.

note : I did change the nspace value to reflect the DB I'm
using/querying

I've even changed the stat level to 200 (default is 100 or -1)

The nspname setting setting is for schema, not db name.

#5Ow Mun Heng
Ow.Mun.Heng@wdc.com
In reply to: Scott Marlowe (#4)
Re: Column Statistics - How to dertermine for whole database

On Wed, 2008-03-12 at 21:40 -0700, Scott Marlowe wrote:

On Wed, Mar 12, 2008 at 8:45 PM, Ow Mun Heng <Ow.Mun.Heng@wdc.com> wrote:

On Wed, 2008-03-12 at 21:33 -0500, Adam Rich wrote:

select c.relname, a.attname, attstattarget
from pg_catalog.pg_attribute a, pg_catalog.pg_class c,
pg_catalog.pg_namespace n
where a.attrelid = c.oid and c.relnamespace=n.oid
and n.nspname = 'public' and a.attnum > 0

Funny, that does not work.

note : I did change the nspace value to reflect the DB I'm
using/querying

I've even changed the stat level to 200 (default is 100 or -1)

The nspname setting setting is for schema, not db name.

select c.relname, a.attname, attstattarget
from pg_catalog.pg_attribute a, pg_catalog.pg_class c,
pg_catalog.pg_namespace n
where a.attrelid = c.oid and c.relnamespace=n.oid
and n.nspname = 'xmms' and a.attnum > 0 and attstattarget <> -1;

This works now.
The clarification on it being the schema name was useful.
Thanks.