PostgreSQL 진단

PostgreSQL은 누적 통계, 현재 세션, 실행 계획을 오간다

pg_stat_statements로 후보를 찾고 pg_stat_activity와 EXPLAIN으로 지금의 원인을 좁힌다.

CREATE EXTENSION pg_stat_statements;
ORDER BY total_exec_time DESC
SELECT * FROM pg_stat_activity WHERE state <> 'idle';
EXPLAIN (ANALYZE, BUFFERS) SELECT ...;
관찰누적 후보calls와 mean time을 같이 봐서 빈번함과 느림을 구분한다.
관찰현재 상태wait_event_type으로 락, I/O, 클라이언트 대기를 나눈다.
관찰테이블 건강seq_scan, dead tuple, last_autovacuum을 확인한다.
관찰계획 검증DML 분석은 트랜잭션 안에서 롤백하며 수행한다.