DBAtlas · 데이터베이스 운영 아틀라스

테이블 bloat 추정

PostgreSQL스토리지

명령어

SELECT schemaname, relname AS table_name, n_dead_tup AS dead_rows, n_live_tup AS live_rows, round(n_dead_tup::numeric / NULLIF(n_live_tup + n_dead_tup, 0) * 100, 1) AS dead_pct, last_autovacuum FROM pg_stat_user_tables WHERE n_dead_tup > 0 ORDER BY n_dead_tup DESC LIMIT 20;

하는 일

dead tuple 수와 마지막 autovacuum 시각을 기준으로 bloat 비율을 보여 준다.

사용 시점

VACUUM 필요 여부와 autovacuum이 따라가고 있는지 판단하기 위해.

주의

n_dead_tup은 DML 카운터로 계속 갱신되는 추정치다(VACUUM 후 감소하며, ANALYZE는 추정치만 보정한다). 정확한 물리적 bloat은 pgstattuple 확장(pgstattuple('customer'))이 더 정확하다.

DBAtlas에서 열기 →

관련 항목