ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • 옵티마이저 힌트 & SQL 공유와 재사용
    DataBase/튜닝 2024. 7. 17. 16:35

    1. 힌트란

     

    옵티마이저가 대부분 좋은 선택을 하지만, 완벽하진 않다. SQL이 복잡할수록 실수할 가능성도 크다.

    데이터 또는 업무 특성을 활용해 개발자가 직접 더 효율적인 액세스 경로를 찾아낼 수도 있다.

    이럴 때 옵티마이저 힌트를 이용해 데이터 엑세스 경로를 바꿀 수 있다.

    SELECT /*+ INDEX(A.고객_PK) */ 고객명, 연락처, 주소, 가입일시 FROM 고객 A 
    WHERE 고객ID = '00000008';

     힌트의 사용법은 간단하다. 주석 사이에 +기호를 사용하면된다.

     

    힌트의 의미를 다 이해하려면 많은 공부가 필요하다. 사용법은 간단하니 몇가지 주의사항만 지키자

     

    2. 힌트 사용 시 주의사항

    1. 힌트 안에 인자를 나열할 땐 ,(콤마)를 사용할 수 있지만, 힌트와 힌트 사이에 사용하면 안된다.
    2. 테이블을 지정할 때 스키마명까지 명시하면 안된다.
    3. FROM절 테이블명 앞에 ALAS를 지정했다면, 힌트에도 반드시 ALIAS를 사용해야한다. 

    3. 힌트의 범위

     

    힌트를 사용해 옵티마이저가 특정 경로로만 SQL을 실행하도록 꼼꼼하게 지정할 수도 있고,

    몇가지 경로만 사용하고, 나머지는 스스로 판단하도록 만들 수 도 있다.

     

    어떤 방식이 옳은지는 애플리케이션 환경에 달렸다. 통계정보나 실행 환경 변화로 인해 옵티마이저가 가끔 실수하더라도 별 문제가 없는 시스템이라면, 꼼꼼하게 지정할 필요가 없지만, 반대라면 이야기가 다르다! 

     

    기왕에 힌트를 사용한 거라면 빈틈없이 기술하는 편이 낫다.

     

    4. 자주 사용하는 힌트 목록  

     

    출처: 친절한SQL튜닝
    출처: 친절한SQL튜닝


     

     

Designed by Tistory.