Nedan finns två sätt att returnera storleken på en specifik databas i PostgreSQL.
PG_DATABASE_SIZE() Funktion
PG_DATABASE_SIZE() funktionen beräknar det totala diskutrymmet som används av databasen med det angivna namnet eller OID.
Exempel:
SELECT PG_SIZE_PRETTY(PG_DATABASE_SIZE('pethotel')); Resultat:
8169 kB
Här returnerade jag storleken på pethotel databas.
I det här fallet använde jag också PG_SIZE_PRETTY() funktion för att returnera resultatet i ett mer lättläst format med storleksenheter (byte, kB, MB, GB eller TB beroende på vad som är lämpligt).
Här är vad vi får utan den funktionen:
SELECT PG_DATABASE_SIZE('pethotel'); Resultat:
8364911
För att använda han PG_DATABASE_SIZE() funktion måste du ha CONNECT privilegium på den angivna databasen (vilket beviljas som standard) eller vara medlem i pg_read_all_stats roll.
\l+ Kommando
Om du använder psql kan du köra \l+ kommando.
Exempel:
\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 | | +--------+----------+----------+-------------+-------------+-------------------+-------+------------+-------------+
Den här gången kollade jag pagila databas.
Detta kan också köras med \list+ (\l+ är en förkortning av \list+ ).
Kommandot kan också köras utan plustecknet (+ ), dock + är det som returnerar utökad information, som storleken (vilket är det vi är intresserade av här).
Kommandot kan också köras utan att ange databasen. I detta fall kommer information om alla databaser att returneras.
Observera att storleksinformation endast är tillgänglig för databaser som den aktuella användaren kan ansluta till.