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.
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 |