IT/개발자 면접

SLOW SQL 수정할 때 고려사항

Collin 2025. 11. 22. 08:00
반응형

SLOW SQL 튜닝 시 가장 중요한 고려사항은 실행계획 분석, 인덱스 활용, SELECT 범위 최소화입니다. 이 세 가지가 성능 개선의 핵심이며, 그 외에도 조인 방식, 정렬/집계 처리, 통계 정보 최신화 등이 중요합니다.


🚀 SLOW SQL 튜닝 핵심 고려사항 (중요도 순)

1️⃣ 실행계획(Execution Plan) 분석

  • 가장 중요한 첫 단계: DB가 쿼리를 어떻게 수행하는지 확인
  • 확인 항목: 인덱스 사용 여부, 테이블 스캔 방식, 조인 순서, 예상 비용(Cost)
  • 도구: EXPLAIN, AUTOTRACE, SQL PLAN 등

2️⃣ 인덱스 활용 여부

  • WHERE 절, JOIN 조건에 인덱스 컬럼 사용 여부 확인
  • 주의: 함수 사용, 형 변환, OR 조건 등은 인덱스를 무효화할 수 있음
  • 대응: 인덱스 설계 최적화, 조건절 단순화

3️⃣ SELECT 컬럼 범위 최소화

  • SELECT * 사용 지양: 불필요한 I/O 증가
  • 정확히 필요한 컬럼만 명시: 실행 계획 재사용 가능성 증가

4️⃣ 조인 방식 및 순서 최적화

  • Nested Loop vs Hash Join 등 조인 방식 선택
  • 큰 테이블을 먼저 읽는 구조는 피해야 함
  • 불필요한 FULL SCAN 조인 제거

5️⃣ GROUP BY, ORDER BY 처리 방식

  • 정렬/집계 비용이 높은 경우 성능 저하
  • 인덱스를 활용한 정렬 대체 가능 여부 확인

6️⃣ 서브쿼리 vs JOIN 구조 개선

  • 서브쿼리는 중첩 실행으로 성능 저하 가능
  • JOIN으로 구조 변경 시 성능 향상 가능

7️⃣ 통계 정보 및 옵티마이저 최신화

  • DB가 잘못된 실행계획을 선택할 수 있음
  • 통계 정보 최신화로 정확한 계획 수립 유도

8️⃣ 페이징 처리 (LIMIT, OFFSET 등)

  • 대량 데이터 조회 시 반드시 페이징 처리
  • 불필요한 전체 데이터 로딩 방지

📌 실무 팁 요약

  • EXPLAIN으로 실행계획부터 확인
  • 인덱스가 무효화되지 않도록 조건절 점검
  • SELECT * 대신 필요한 컬럼만 명시
  • JOIN 구조와 순서 최적화
  • 정렬/집계는 인덱스로 대체 가능 여부 확인
  • 통계 정보 최신화는 튜닝의 기본

 

728x90
반응형