본문 바로가기

개발 관련/SQL

SQL 튜닝 팁

작년에 SQL 튜닝을 해야했던 적이 있다.

 

성능이 너무 느려 튜닝작업을 했었는데, 아래의 팁을 토대로 튜닝을 진행하니 메인 페이지에 접속하는 속도가 7초에서 1초대로 떨어졌던 기억이 난다.

 

SQL 튜닝 팁은 다음과 같다.

 

  1. select 절에서 distinct는 피하자.
  2. where절 비교칼럼 데이터 타입은 일치시켜라
  3. outer join, is null을 이용한 안티조인보다는 not in, not exists를 사용
  4. outer join, union all로 full outer을 구현하기 보다는 full outer join을 사용
  5. in을 이용한 조인보다는 exists를 사용
  6. union 보다는 union all 을 사용
  7. 조인되는 건수가 작다면 일반적인 조인보다 스칼라 서브쿼리 사용 고려
  8. 인덱스 없이 count를 여러번 실행 시, 통합해서 count case 를 이용
  9. 인덱스 칼럼을 where절에서 사용 시 or로 union 체크
  10. 공통쿼리는 with 문으로 통합
  11. 그룹핑 시, having 보다는 where 절로 조건 검색
  12. 여러 칼럼으로 구성된 복합 인덱스 사용 시, index 힌트를 적절히 사용