explain 2

슬로우 쿼리 진단

학습 목표슬로우 쿼리가 CPU·I/O·lock·네트워크 중 어디서 시간을 쓰는지 구분할 수 있다.slow query log·pg_stat_statements로 빈도·총 시간 기준 후보를 찾을 수 있다.pg_stat_activity·lock wait로 대기·blocking 세션을 진단할 수 있다.EXPLAIN ANALYZE로 실행 계획 편의 플랜·추정 오차를 검증할 수 있다.영향도·수정 비용 기준 튜닝 우선순위를 정할 수 있다.문제 상황API p99 2.4s — 앱 프로파일은 얕음 · DB CPU 85%SELECT * FROM orders 수천 번 — ORM N+1 (pool·ORM 편)pg_stat_statements 없음 — 어느 SQL이 느린지 모름EXPLAIN만 보고 인덱스 추가 — actual t..

실행 계획 읽기

학습 목표EXPLAIN 출력이 실행 전략이지 결과 집합이 아님을 설명할 수 있다.Seq Scan·Index Scan·Index Only Scan 차이와 선택 조건을 설명할 수 있다.Nested Loop·Hash Join·Merge Join의 동작과 적합한 입력 크기를 설명할 수 있다.cost·rows·actual time 필드를 읽고 튜닝 방향을 잡을 수 있다.문제 상황user_id 인덱스를 만들었는데 여전히 Seq Scan이다선택도·통계·조건식 때문에 옵티마이저가 풀 스캔을 고른다EXPLAIN에 cost=0.00..1234.56 rows=100 — 숫자만 보고 ms로 착각한다cost는 상대 단위, 버전·설정마다 스케일이 다르다작은 테이블 조인인데 Hash Join이 아니라 Nested Loop가 나온다..