Jak uzyskać faktycznie przydzielony rozmiar obszaru tabel według każdej bazy danych Postgres?

12

Obszar tabel Postgres obejmuje cały klaster. Dlatego w jaki sposób mogę obliczyć, ile miejsca przydzielonego przez każdą bazę danych w obszarze tabel Postgres?

Stephane Rolland
źródło

Odpowiedzi:

16

Aby zająć miejsce na dysku w bazie danych (ładnie sformatowane):

SELECT pg_size_pretty(pg_database_size('mydb'))

Miejsce na dysku zajmowane przez obszar tabel:

SELECT pg_size_pretty(pg_tablespace_size('mytblspace'))

Dowiedz się więcej o funkcjach rozmiaru obiektu bazy danych w instrukcji :

Erwin Brandstetter
źródło
2
Bardzo przydatne byłoby połączenie tego z SELECTtabelami systemowymi: SELECT spcname, pg_size_pretty(pg_tablespace_size(spcname)) FROM pg_tablespace;i SELECT datname, pg_size_pretty(pg_database_size(datname)) FROM pg_database;.
jpmc26