Existe algum comando para encontrar todo o tamanho dos bancos de dados no Postgres?
Consigo encontrar o tamanho de um banco de dados específico usando o seguinte comando:
select pg_database_size('databaseName');
Existe algum comando para encontrar todo o tamanho dos bancos de dados no Postgres?
Consigo encontrar o tamanho de um banco de dados específico usando o seguinte comando:
select pg_database_size('databaseName');
Respostas:
E ... Se você não desejar digitar uma consulta inteira ... também poderá digitar ...
\l+ <database_name>
e você obterá alguns detalhes sobre o banco de dados, incluindo o tamanho do banco de dados.
E ... Para obter tamanhos de todos os bancos de dados.
você pode simplesmente digitar ...
\l+
Pode ser necessário entrar no prompt de comando do postgresql para consultar com esses comandos auxiliares do postgresql.
Verifique outros comandos auxiliares do postgresql digitando
\?
no prompt de comando do postgresql.
Você pode obter os nomes de todos os bancos de dados aos quais você pode se conectar na 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 ().
pg_database_size()
inclui os tamanhos dos índices
\l+
. Porém, o formato de saída é mais fácil de ler (menos colunas). Troca entre gravabilidade e legibilidade…
-- Database Size
SELECT pg_size_pretty(pg_database_size('Database Name'));
-- Table Size
SELECT pg_size_pretty(pg_relation_size('table_name'));
Com base na resposta aqui de @Hendy Irawan
Mostrar tamanhos do banco 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 tamanhos de tabela:
\d+
por exemplo
=> \d+
public | tuneeca_prd | table | tomcat | 8192 bytes |
public | tuneeca_stg | table | tomcat | 1464 kB |
Só funciona em psql
.
\d+ *
trabalhou, plain \d+
voltouDid not find any relations.
\c dbname
), depois faça \d+
.
Sim, existe um comando para encontrar o tamanho de um banco de dados no 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;
SELECT database_name, pg_size_pretty(size) from (SELECT pg_database.datname as "database_name", pg_database_size(pg_database.datname) AS size FROM pg_database ORDER by size DESC) as ordered;
SELECT pg_database.datname AS "DB Name", pg_size_pretty(pg_database_size(pg_database.datname)) AS "Size" FROM pg_database ORDER BY (pg_database_size(pg_database.datname)) DESC;
.
SELECT pg_size_pretty(pg_database_size('name of database'));
Fornecerá o tamanho total de um banco de dados específico, no entanto, acho que você não pode fazer todos os bancos de dados em um servidor.
No entanto, você poderia fazer isso ...
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;
$$
pg_database
e não esse hediondo pl / pgsql?
No wiki do PostgreSQL .
NOTA: Os bancos de dados aos quais o usuário não pode se conectar são classificados 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 possui trechos para encontrar o tamanho de suas maiores relações e maiores tabelas.
Você pode usar a consulta abaixo para encontrar o tamanho de todos os bancos de dados do PostgreSQL.
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;
Inicie o pgAdmin, conecte-se ao servidor, clique no nome do banco de dados e selecione a guia de estatísticas. Você verá o tamanho do banco de dados na parte inferior da lista.
Então, se você clicar em outro banco de dados, ele permanecerá na guia de estatísticas, para que você possa ver facilmente vários tamanhos de banco de dados sem muito esforço. Se você abrir a lista de tabelas, mostrará todas as tabelas e seus tamanhos.
Databases
nó da árvore (conectado a uma conexão com o banco de dados) e selecionar a Statistics
guia, será apresentado um bom resumo de todos os bancos de dados e seus tamanhos (terceira coluna).
du -k /var/lib/postgresql/ |sort -n |tail
du -k /var/lib/pgsql/ | sort -n | tail