느린 경로 식별
요청 로그에서 route, query name, p95 latency, row count를 묶어 병목 후보를 찾습니다.
observabilityNest 애플리케이션의 DB 성능은 ORM 옵션 하나가 아니라 쿼리 계획, 인덱스, 관계 로딩, 커넥션 풀, 트랜잭션 범위를 함께 봐야 개선됩니다.
요청 로그에서 route, query name, p95 latency, row count를 묶어 병목 후보를 찾습니다.
observabilityEXPLAIN으로 seq scan, index scan, join order, estimated rows가 의도와 맞는지 봅니다.
EXPLAINORM eager/lazy loading이 N+1 쿼리를 만들지 않는지 SQL 로그로 확인합니다.
N+1쿼리 자체보다 커넥션 풀 대기 시간이 긴 경우 pool size와 트랜잭션 길이를 봅니다.
pool인덱스 추가, join 변경, batch 처리 후 같은 입력으로 latency와 계획을 다시 비교합니다.
verify