Esiste un comando per trovare tutte le dimensioni dei database in Postgres?
Sono in grado di trovare la dimensione di un database specifico utilizzando il seguente comando:
select pg_database_size('databaseName');
Esiste un comando per trovare tutte le dimensioni dei database in Postgres?
Sono in grado di trovare la dimensione di un database specifico utilizzando il seguente comando:
select pg_database_size('databaseName');
Risposte:
E ... Se nel caso in cui non desideri digitare un'intera query ... puoi anche digitare ...
\l+ <database_name>
e otterrai alcuni dettagli sul database, inclusa la dimensione del database.
E ... Per ottenere dimensioni di tutti i database.
puoi semplicemente digitare ...
\l+
Potrebbe essere necessario accedere al prompt dei comandi postgresql per eseguire query con questi comandi helper postgresql.
Controlla altri comandi helper postgresql digitando
\?
al prompt dei comandi postgresql.
È possibile ottenere i nomi di tutti i database a cui è possibile connettersi dalla tabella di sistema "pg_datbase". Basta applicare la funzione ai nomi, come di seguito.
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 intendi che l'output venga consumato da una macchina anziché da un essere umano, puoi tagliare la funzione pg_size_pretty ().
pg_database_size()
include le dimensioni per gli indici
\l+
. Il formato di output è tuttavia più facile da leggere (meno colonne). Un compromesso tra scrivibilità e leggibilità ...
-- Database Size
SELECT pg_size_pretty(pg_database_size('Database Name'));
-- Table Size
SELECT pg_size_pretty(pg_relation_size('table_name'));
Sulla base della risposta qui di @Hendy Irawan
Mostra dimensioni database:
\l+
per esempio
=> \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 |
Mostra dimensioni tavolo:
\d+
per esempio
=> \d+
public | tuneeca_prd | table | tomcat | 8192 bytes |
public | tuneeca_stg | table | tomcat | 1464 kB |
Funziona solo in psql
.
\d+ *
funzionato solo , è \d+
tornato semplicementeDid not find any relations.
\c dbname
), quindi esegui \d+
.
Sì, esiste un comando per trovare la dimensione di un database in Postgres. È il seguente:
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'));
Ti darà la dimensione totale di un determinato database, tuttavia non credo che tu possa fare tutti i database all'interno di un server.
Comunque potresti farlo ...
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
piuttosto che questo orribile pl / pgsql?
Dal wiki PostgreSQL .
NOTA: i database a cui l'utente non può connettersi sono ordinati come se avessero dimensioni infinite.
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
La pagina contiene anche frammenti per trovare la dimensione delle relazioni più grandi e delle tabelle più grandi.
È possibile utilizzare la query seguente per trovare la dimensione di tutti i database di PostgreSQL.
Il riferimento è tratto da questo 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;
Avviare pgAdmin, connettersi al server, fare clic sul nome del database e selezionare la scheda delle statistiche. Vedrai le dimensioni del database in fondo all'elenco.
Quindi, se fai clic su un altro database, rimane nella scheda delle statistiche in modo da poter vedere facilmente molte dimensioni del database senza troppi sforzi. Se si apre l'elenco delle tabelle, vengono visualizzate tutte le tabelle e le relative dimensioni.
Databases
nodo dell'albero (collegato a una connessione DB) e selezioni la Statistics
scheda, ti verrà presentato un bel riepilogo di tutti i database e delle loro dimensioni (terza colonna).
du -k /var/lib/postgresql/ |sort -n |tail
du -k /var/lib/pgsql/ | sort -n | tail