en apuntes, software libre

Tamaño de una base de datos en PostgreSQL

La otra vez, por un requerimiento del trabajo, tenia que pasar en un informe el tamaño de una Base de datos de _PostgreSQL_ de un sistema interno que estoy manteniendo.

Nunca me había puesto a pensar, pero _PostgreSQL_ no es como otras bases de datos (como _Firebird_) que tienen un archivo único por cada base de datos, sino que maneja las DB de una manera interna.

No voy a emitir juicio de valor sobre las ventajas y desventajas de una u otra forma, lo que era claro que para lo que tenia que obtener, la cosa no iba a ser tan fácil.

O eso creía. La cuestión esta resuelta en “esta pagina”:http://www.summersault.com/community/weblog/2005/10/25/reporting-on-disk-space-usage-for-postgresql-and-mysql-databases.html y el _script_ es el siguiente:

bc. SELECT pg_database.datname,
pg_shadow.usename AS owner,
pg_database_size(pg_database.datname) AS size,
pg_size_pretty(pg_database_size(pg_database.datname)) AS pretty_size
FROM pg_database
JOIN pg_shadow ON pg_database.datdba = pg_shadow.usesysid;

Obtenemos así un listado donde la primer columna contiene el nombre de cada DB y la ultima columna nos da el tamaño en Bytes de dicha DB.

Resta comentar que es necesario ser administrador de _PostgreSQL_ para ejecutar el _script_, o que nuestro usuario tenga permiso de lectura sobre la tabla *pg_shadow*.

Loading Facebook Comments ...

¿Algo para decir?

Comentario

Loading Disqus Comments ...