Re: schema sizes

From: Morus Walter <morus(dot)walter(at)tanto(dot)de>
To: Daniel Rubio <drubior(at)tinet(dot)org>
Subject: Re: schema sizes
Date: 2005-03-03 07:34:28
Message-ID: 16934.48644.771352.662613@tanto-xipolis.de
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-admin

Daniel Rubio writes:
> Hi all!
>
> We want to obtain the size of the diferent schemas of some databases.
> We've installed dbsize and it works fine, but it returns the size of all
> the database.
> Exists some method to determine the size of a concrete schema?
>
I use
SELECT nspname,
sum(relpages * cast( 8192 AS bigint )) as "table size",
sum( ( select sum(relpages)
from pg_class i, pg_index idx
where i.oid = idx.indexrelid
and t.oid=idx.indrelid ) ) * cast( 8192 AS bigint ) as "index size",
sum ( relpages * cast( 8192 AS bigint ) + ( select sum(relpages)
from pg_class i, pg_index idx
where i.oid = idx.indexrelid
and t.oid=idx.indrelid ) * cast( 8192 AS bigint ) ) as "size"
FROM pg_class t, pg_namespace
WHERE relnamespace = pg_namespace.oid
and pg_namespace.nspname not like 'pg_%'
and pg_namespace.nspname != 'information_schema'
and relkind = 'r' group by nspname;

to sum over all tables/indices of a schema.
Note that the input for the sum is relpages in pg_class and this value
is only updated by VACUUM, ANALYZE und CREATE INDEX.
So you should analyze all tables before you execute the statement.

In response to

Responses

Browse pgsql-admin by date

  From Date Subject
Next Message juanmime 2005-03-03 08:45:47 How to deny remote backups ?
Previous Message Marco Rademeyer 2005-03-03 05:08:34 Re: Application gui