Comment obtenir la taille de l'espace de table réellement allouée par chaque base de données PostgreSQL?

12

L'espace de table Postgres est à l'échelle du cluster. Par conséquent, comment calculer la quantité d'espace allouée par chaque base de données dans le tablespace postgres?

Stéphane Rolland
la source

Réponses:

16

Pour obtenir l'espace disque occupé par une base de données (bien formaté):

SELECT pg_size_pretty(pg_database_size('mydb'))

Espace disque occupé par un tablespace:

SELECT pg_size_pretty(pg_tablespace_size('mytblspace'))

En savoir plus sur les fonctions de taille d'objet de base de données dans le manuel :

Erwin Brandstetter
la source
2
On pourrait très utilement combiner cela avec un SELECTsur les tables système: SELECT spcname, pg_size_pretty(pg_tablespace_size(spcname)) FROM pg_tablespace;et SELECT datname, pg_size_pretty(pg_database_size(datname)) FROM pg_database;.
jpmc26