Cómo obtener el tamaño de las bases de datos en PostgreSQL
Para obtener el tamaño de todas las bases de datos en nuestra instancia de PostgreSQL, podemos utilizar la siguiente sentencia:
SELECT pg_database.datname, pg_size_pretty(pg_database_size(pg_database.datname)) AS SIZE
FROM pg_database;
Explicación:
pg_database almacena la información de todas las bases de datos de la instancia, aquí seleccionamos particularmente el campo datname que es el nombre de la base de datos. A su vez, utilizamos dos funciones disponibles en el motor de Postgres, una de ellas es pg_database_size(data_base_name) que recibe como parámetro el nombre de la base de datos y devuelve su tamaño en bytes; para convertirlo a una forma "más legible", utilizamos la función pg_size_pretty(number), la cual recibe como parámetro una cifra en bytes y la transforma según su tamaño a Kb, Gb, etc.
La salida sería de la forma: Nombre de la base de datos | Tamaño
Opcionalmente, para obtener el tamaño de una base de datos en específico, podemos agregar el filtro WHERE a la sentencia y así especificar el nombre de la base:
SELECT pg_database.datname, pg_size_pretty(pg_database_size(pg_database.datname)) AS SIZE
FROM pg_database
WHERE pg_database.datname = ''Name_of_the_database';
SELECT pg_database.datname, pg_size_pretty(pg_database_size(pg_database.datname)) AS SIZE
FROM pg_database;
Explicación:
pg_database almacena la información de todas las bases de datos de la instancia, aquí seleccionamos particularmente el campo datname que es el nombre de la base de datos. A su vez, utilizamos dos funciones disponibles en el motor de Postgres, una de ellas es pg_database_size(data_base_name) que recibe como parámetro el nombre de la base de datos y devuelve su tamaño en bytes; para convertirlo a una forma "más legible", utilizamos la función pg_size_pretty(number), la cual recibe como parámetro una cifra en bytes y la transforma según su tamaño a Kb, Gb, etc.
La salida sería de la forma: Nombre de la base de datos | Tamaño
Opcionalmente, para obtener el tamaño de una base de datos en específico, podemos agregar el filtro WHERE a la sentencia y así especificar el nombre de la base:
SELECT pg_database.datname, pg_size_pretty(pg_database_size(pg_database.datname)) AS SIZE
FROM pg_database
WHERE pg_database.datname = ''Name_of_the_database';
Comentarios
Publicar un comentario