반응형
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
반응형
'IT > 개발자 면접' 카테고리의 다른 글
| 대규모 트래픽을 효율적으로 처리하기 위해 어떤 접근과 기술을 사용할 수 있나요? (0) | 2025.12.10 |
|---|---|
| java Call by Value와 Call by Reference (1) | 2025.11.21 |
| 웹 서버 취약점 목록 및 요약 (0) | 2025.11.21 |
| java Overloading과 Overriding (0) | 2025.11.20 |
| DB 복합 인덱스 (0) | 2025.11.20 |