Abaixo estão duas maneiras de retornar o tamanho de um banco de dados específico no PostgreSQL.
O PG_DATABASE_SIZE()
Função
O
PG_DATABASE_SIZE()
A função calcula o espaço total em disco usado pelo banco de dados com o nome ou OID especificado. Exemplo:
SELECT PG_SIZE_PRETTY(PG_DATABASE_SIZE('pethotel'));
Resultado:
8169 kB
Aqui, retornei o tamanho do
pethotel
base de dados. Neste caso eu também usei o
PG_SIZE_PRETTY()
função para retornar o resultado em um formato mais facilmente legível por humanos com unidades de tamanho (bytes, kB, MB, GB ou TB conforme apropriado). Aqui está o que obtemos sem essa função:
SELECT PG_DATABASE_SIZE('pethotel');
Resultado:
8364911
Para usar ele
PG_DATABASE_SIZE()
função, você deve ter CONNECT
privilégio no banco de dados especificado (que é concedido por padrão) ou ser um membro do pg_read_all_stats
Função. O \l+
Comando
Se você estiver usando o psql, poderá executar o
\l+
comando. Exemplo:
\l+ pagila
Resultado:
List of databases +--------+----------+----------+-------------+-------------+-------------------+-------+------------+-------------+ | Name | Owner | Encoding | Collate | Ctype | Access privileges | Size | Tablespace | Description | +--------+----------+----------+-------------+-------------+-------------------+-------+------------+-------------+ | pagila | postgres | UTF8 | en_US.UTF-8 | en_US.UTF-8 | | 16 MB | pg_default | | +--------+----------+----------+-------------+-------------+-------------------+-------+------------+-------------+
Desta vez eu verifiquei a
pagila
base de dados. Isso também pode ser executado usando
\list+
(\l+
é a abreviação de \list+
). O comando também pode ser executado sem o símbolo de mais (
+
), no entanto, o +
é o que retorna informações estendidas, como o tamanho (que é o que nos interessa aqui). O comando também pode ser executado sem especificar o banco de dados. Nesse caso, as informações de todos os bancos de dados serão retornadas.
Observe que as informações de tamanho estão disponíveis apenas para bancos de dados aos quais o usuário atual pode se conectar.