요약
pg_database테이블의 정보를 활용하여 DB/스키마별 용량 조회
1. 데이터베이스별 용량
SELECT datname,
pg_size_pretty(pg_database_size(datname))
FROM pg_database;2. 스키마별 용량
-- 특정 스키마 용량
SELECT pg_size_pretty(pg_schema_size('schema_name'));
-- 전체 스키마 용량
SELECT
pg_size_pretty(pg_database_size(current_database())) AS db_size,
schema_name,
pg_size_pretty(SUM(table_size)::BIGINT) AS disk_space,
ROUND((SUM(table_size) / pg_database_size(current_database())) * 100, 3) AS ratio
FROM (
SELECT pg_catalog.pg_namespace.nspname AS schema_name,
pg_relation_size(pg_catalog.pg_class.oid) AS table_size
FROM pg_catalog.pg_class
JOIN pg_catalog.pg_namespace ON relnamespace = pg_catalog.pg_namespace.oid
) AS t
GROUP BY schema_name
ORDER BY ratio DESC;참고사이트