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.