Как получить фактически выделенный размер табличного пространства каждой базой данных postgres?

12

Табличное пространство Postgres распространяется на весь кластер. Следовательно, как рассчитать, сколько места выделено каждой базой данных в табличном пространстве postgres?

Стефан Роллан
источник

Ответы:

16

Чтобы получить дисковое пространство, занимаемое базой данных (красиво отформатировано):

SELECT pg_size_pretty(pg_database_size('mydb'))

Дисковое пространство, занимаемое табличным пространством:

SELECT pg_size_pretty(pg_tablespace_size('mytblspace'))

Узнайте больше о функциях размера объектов базы данных в руководстве :

Эрвин Брандштеттер
источник
2
Можно было бы очень полезно объединить это с SELECTсистемными таблицами: SELECT spcname, pg_size_pretty(pg_tablespace_size(spcname)) FROM pg_tablespace;и SELECT datname, pg_size_pretty(pg_database_size(datname)) FROM pg_database;.
jpmc26