본문 바로가기
System/DB

[PostgreSQL] 저장된 데이터 용량 확인 방법

by BitSense 2025. 2. 25.

PostgreSQL에서 스키마별 데이터 용량을 확인하는 방법은 다음과 같습니다.

1. pg_total_relation_size 및 pg_namespace를 사용하여 스키마별 데이터 용량 조회

SELECT n.nspname AS schema_name,
       pg_size_pretty(SUM(pg_total_relation_size(c.oid))) AS total_size
FROM pg_class c
JOIN pg_namespace n ON n.oid = c.relnamespace
WHERE n.nspname NOT IN ('pg_catalog', 'information_schema') -- 시스템 스키마 제외
GROUP BY n.nspname
ORDER BY SUM(pg_total_relation_size(c.oid)) DESC;

pg_total_relation_size(c.oid): 테이블, 인덱스 등을 포함한 전체 크기

pg_namespace: 스키마 정보를 저장하는 시스템 테이블

pg_size_pretty(): 바이트 단위 크기를 읽기 쉽게 변환

 

2. pg_database_size를 활용하여 전체 데이터베이스 용량 확인

SELECT pg_size_pretty(pg_database_size(current_database())) AS database_size;

 

3. 개별 테이블 크기 확인

특정 스키마 내에서 개별 테이블 크기를 확인하려면 다음 쿼리를 사용할 수 있습니다.

SELECT schemaname, relname AS table_name, 
       pg_size_pretty(pg_total_relation_size(relid)) AS total_size
FROM pg_stat_user_tables
WHERE schemaname = 'your_schema'
ORDER BY pg_total_relation_size(relid) DESC;

pg_stat_user_tables: 사용자 테이블 통계를 저장하는 뷰

relid: 테이블의 OID

 

이 쿼리를 실행하면 특정 스키마 내에서 어떤 테이블이 가장 많은 공간을 차지하는지 알 수 있습니다.

반응형