Comando Postgres Tamanho do DB

Existe algum comando para encontrar todo o tamanho das bases de dados em Postgres?

sou capaz de encontrar o tamanho de uma base de dados específica usando o seguinte comando:

select pg_database_size('databaseName');
Author: a_horse_with_no_name, 2013-09-20

10 answers

E..... Se no caso de você não quiser digitar uma consulta inteira... você também pode digitar...
\l+ <database_name>

E você vai obter alguns detalhes sobre a base de dados, incluindo o tamanho da base de dados.

E..... Para obter tamanhos de todas as bases de dados. Podes escrever...
\l+

Poderá ter de ir à linha de comandos postgresql para consultar com estes comandos auxiliares do postgresql.

Verifique outros comandos auxiliares do postgresql escrevendo

\?

No postgresql comando.

 269
Author: Ashish, 2014-06-02 08:43:33

Pode obter os nomes de todas as bases de dados a que se pode ligar a partir da tabela de Sistema "pg_datbase". Basta aplicar a função aos nomes, como abaixo.

select t1.datname AS db_name,  
       pg_size_pretty(pg_database_size(t1.datname)) as db_size
from pg_database t1
order by pg_database_size(t1.datname) desc;

Se você pretende que a saída seja consumida por uma máquina em vez de um humano, você pode cortar a função pg_size_pretty ().

 142
Author: Mike Sherrill 'Cat Recall', 2013-09-20 00:39:38
-- Database Size
SELECT pg_size_pretty(pg_database_size('Database Name'));
-- Table Size
SELECT pg_size_pretty(pg_relation_size('table_name'));
 114
Author: Srinivasreddy Jakkireddy, 2014-05-11 07:59:15

Baseado na Respostaaqui por @Hendy Irawan

Mostrar as dimensões da base de Dados:

\l+

Por exemplo

=> \l+
 berbatik_prd_commerce    | berbatik_prd     | UTF8     | en_US.UTF-8 | en_US.UTF-8 |                       | 19 MB   | pg_default | 
 berbatik_stg_commerce    | berbatik_stg     | UTF8     | en_US.UTF-8 | en_US.UTF-8 |                       | 8633 kB | pg_default | 
 bursasajadah_prd         | bursasajadah_prd | UTF8     | en_US.UTF-8 | en_US.UTF-8 |                       | 1122 MB | pg_default | 

Mostrar as dimensões das tabelas:

\d+

Por exemplo

=> \d+
 public | tuneeca_prd | table | tomcat | 8192 bytes | 
 public | tuneeca_stg | table | tomcat | 1464 kB    | 

Só funciona em psql.

 58
Author: owyongsk, 2017-05-23 11:55:04

Sim, existe um comando para encontrar o tamanho de uma base de dados em Postgres. É o seguinte:

SELECT pg_database.datname as "database_name", pg_size_pretty(pg_database_size(pg_database.datname)) AS size_in_mb FROM pg_database ORDER by size_in_mb DESC;
 11
Author: Anoop Sharma, 2018-03-09 15:27:44

Do PostgreSQL wiki .


as bases de dados às quais o utilizador não pode ligar-se são ordenadas como se fossem de tamanho infinito.

SELECT d.datname AS Name,  pg_catalog.pg_get_userbyid(d.datdba) AS Owner,
    CASE WHEN pg_catalog.has_database_privilege(d.datname, 'CONNECT')
        THEN pg_catalog.pg_size_pretty(pg_catalog.pg_database_size(d.datname))
        ELSE 'No Access'
    END AS Size
FROM pg_catalog.pg_database d
    ORDER BY
    CASE WHEN pg_catalog.has_database_privilege(d.datname, 'CONNECT')
        THEN pg_catalog.pg_database_size(d.datname)
        ELSE NULL
    END DESC -- nulls first
    LIMIT 20

A página também tem trechos para encontrar o tamanho das suas maiores relações e maiores tabelas.

 10
Author: GollyJer, 2015-04-07 03:03:57

Seleccione o PG_ dimense_pretty(PG_ database_size ('nome da base de dados'));

Dar-lhe-á o tamanho total de uma base de dados em particular, no entanto, acho que você não pode fazer todas as bases de dados dentro de um servidor.

Como pudeste fazer isto...

DO
$$
DECLARE
r   RECORD;
db_size TEXT;
BEGIN
FOR r in
SELECT datname FROM pg_database
WHERE datistemplate = false
LOOP
db_size:= (SELECT pg_size_pretty(pg_database_size(r.datname)));

RAISE NOTICE 'Database:% , Size:%', r.datname , db_size;

END LOOP;
END;
$$
 10
Author: Shaun McCready, 2017-03-21 16:42:02

Iniciar o pgAdmin, ligar-se ao servidor, carregar no nome da base de dados e seleccionar a página estatísticas. Você verá o tamanho da base de dados no final da lista.

Então se você clicar em outra base de dados, ela fica na página estatísticas para que você possa facilmente ver muitos tamanhos de banco de dados sem muito esforço. Se você abrir a lista de tabelas, ela mostra todas as tabelas e seus tamanhos.

 2
Author: SPRBRN, 2014-04-17 07:55:53

Pode usar a pesquisa abaixo para encontrar o tamanho de todas as bases de dados do PostgreSQL.

A referência é retirada deste blog.

SELECT 
    datname AS DatabaseName
    ,pg_catalog.pg_get_userbyid(datdba) AS OwnerName
    ,CASE 
        WHEN pg_catalog.has_database_privilege(datname, 'CONNECT')
        THEN pg_catalog.pg_size_pretty(pg_catalog.pg_database_size(datname))
        ELSE 'No Access For You'
    END AS DatabaseSize
FROM pg_catalog.pg_database
ORDER BY 
    CASE 
        WHEN pg_catalog.has_database_privilege(datname, 'CONNECT')
        THEN pg_catalog.pg_database_size(datname)
        ELSE NULL
    END DESC;
 2
Author: Anvesh, 2017-01-18 21:18:46
du -k /var/lib/postgresql/ |sort -n |tail
 1
Author: Jon Carnes, 2018-05-16 17:53:02