SQL튜닝 기법 요약
누군가가 만든 한방쿼리로 인해서 심각한 병목현상이 발생했다.
급하게 집에 굴러다니는 서적을 찾아보고 메모한다..
효율 좋게 검색을 이용하자
- 서브쿼리로 인수값을 받을때는 IN 보다는 EXISTS를 쓰자
- 서브쿼리로 인수값을 받을때는 IN 보다는 결합을 사용하자
정렬을 될 수 있음 회피하자
- 결합 연산잔의 ALL옵션을 잘 쓰자
- DISTINCT 대신에 EXISTS를 쓰는 것을 고려해보자
- 최대 최소값(MIN/MAX)을 인덱스로 사용해보자
- WHERE절에 쓰는 조건은 HAVING절에 쓰지 않는다
- GROUP BY절과 ORDER BY절에서 인덱스를 사용하자
인덱스가 정말로 사용되고 있는지 확인하자
- 검색열에서 연산을 하고 있을 때
- IS NULL을 사용하고 있을 때
- 부정형을 사용하고 있을 때
- OR을 사용하고 있을 때
- 결합 색인일 경우 열의 순번을 잘못 파악하고 있을 때
- 후방 일치, 혹은 중간 일치의 LIKE를 사용하고 있을 때
- 암묵적 형변환을 하고 있을 때