[Pgsql-ayuda] Tamaņ o de BD y de tablas

Alvaro Herrera Munoz alvherre@dcc.uchile.cl
Tue, 17 Jun 2003 17:08:14 -0400


On Tue, Jun 17, 2003 at 11:27:25AM -0500, Julian Cardona wrote:
> Hola lista, alguien me puede decir como puedo saber el
> tamano de una base de datos en particular?, el tamano
> de una tabla, y en geneal el tamano de todas las BD
> que tengo en el servidor portgres?, sin necesidad de
> hacer calculos y multiplicaciones por mi cuenta?
        ^^^^^^^^^^^^^^^^^^^^^^^^^^^

No es tan dificil... veamos,

prod=> select oid from pg_database where datname='prod';
   oid
----------
 34377453
(1 row)

[postgres@rayen 34377453]$ du $PGDATA/base/34377453
0       /respaldo/alvherre/pgsql//data/base/34377453/pgsql_tmp
4,4G    /respaldo/alvherre/pgsql//data/base/34377453

Y una tabla:
prod=> select relfilenode from pg_class where relname='http';
 relfilenode
-------------
    34377620
(1 row)
[postgres@rayen 34377453]$ du $PGDATA/base/34377453/34377620*
1,1G    /respaldo/alvherre/pgsql//data/base/34377453/34377620
6,2M    /respaldo/alvherre/pgsql//data/base/34377453/34377620.1

Si hiciste VACUUM, ANALIZE o CREATE INDEX recientemente, puedes esperar
buenos resultados de
prod=> select relpages/128 from pg_class where relname='http';
 ?column?
----------
     1030
(1 row)

No hay muchos calculos y multiplicaciones.  De donde sale 128 queda de
ejercicio para el lector.

-- 
Alvaro Herrera (<alvherre[@]dcc.uchile.cl>)
Si no sabes adonde vas, es muy probable que acabes en otra parte.