Nedenfor er to måder at returnere størrelsen af en specifik database i PostgreSQL.
PG_DATABASE_SIZE()
Funktion
PG_DATABASE_SIZE()
funktion beregner den samlede diskplads, der bruges af databasen med det angivne navn eller OID.
Eksempel:
SELECT PG_SIZE_PRETTY(PG_DATABASE_SIZE('pethotel'));
Resultat:
8169 kB
Her returnerede jeg størrelsen på pethotel
database.
I dette tilfælde brugte jeg også PG_SIZE_PRETTY()
funktion til at returnere resultatet i et lettere menneskeligt læsbart format med størrelsesenheder (bytes, kB, MB, GB eller TB alt efter hvad der er relevant).
Her er, hvad vi får uden den funktion:
SELECT PG_DATABASE_SIZE('pethotel');
Resultat:
8364911
For at bruge han PG_DATABASE_SIZE()
funktion, skal du have CONNECT
privilegium på den angivne database (som er givet som standard) eller være medlem af pg_read_all_stats
rolle.
\l+
Kommando
Hvis du bruger psql, kan du køre \l+
kommando.
Eksempel:
\l+ pagila
Resultat:
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 | | +--------+----------+----------+-------------+-------------+-------------------+-------+------------+-------------+
Denne gang tjekkede jeg pagila
database.
Dette kan også køres med \list+
(\l+
er en forkortelse for \list+
).
Kommandoen kan også køres uden plussymbolet (+
), dog +
er det, der returnerer udvidet information, såsom størrelsen (som er det, vi er interesseret i her).
Kommandoen kan også køres uden at angive databasen. I dette tilfælde vil oplysninger om alle databaser blive returneret.
Bemærk, at størrelsesoplysninger kun er tilgængelige for databaser, som den aktuelle bruger kan oprette forbindelse til.