SCM 데이터 모델 설계와 집계 쿼리 최적화로 공급망 현황 조회 성능 개선 결
SCM 어플리케이션 개발에서 SQL을 가장 많이 활용한 부분은 재고·발주·입고 데이터의 현황 집계 쿼리 설계였습니다. 여러 창고와 품목이 얽힌 구조라 여러 테이블을 JOIN하는 복잡한 쿼리가 많았고, 초기에는 응답 시간이 3초를 넘기도 했습니다.
EXPLAIN ANALYZE로 실행 계획을 분석하니 핵심 WHERE 절 컬럼에 인덱스가 없어 전체 스캔이 발생하는 구조였습니다. 복합 인덱스를 추가하고 불필요한 서브쿼리를 CTE로 분리하니 응답 시간이 0.4초 이하로 줄었습니다.
배치 집계가 필요한 리포트는 실시간 계산 대신 야간 배치로 미리 집계하는 방식을 제안했습니다. 집계 결과를 별도 테이블에 저장해두고 조회 시 그 테이블만 읽도록 구조를 바꾸니 피크 시간대 DB 부하가 크게 줄었습니다.