Ddooby_hi 2020. 12. 18. 15:35

힌트(HINT)란?

SQL 튜닝의 핵심 부분으로 일종의 지시 구문입니다.

SQL에 포함되어 쓰여져 Optimiazer 실행 계획을 원하는 대로 바꿀 수 있게 해준다.

 

Oracle Optimizer에게 SQL문 실행을 위한 데이터를 스캐닝하는 경로, JOIN하는 방법 등을 알려주기 위해 SQL사용자가 SQL구문에 작성하는 것을 말합니다(직접 최적의 실행경로를 작성해 주는 것).

Optimizer에 의존한 실행 계획보다 훨씬 효율적인 실행 계획을 구사 할 수 있습니다.

 

힌트를 명시했지만 없는 경우 또는 힌트명에 오타가 있는 경우 힌트가 없는 것처럼 동작한다.

 

 

Optimizer 란 ?

옵티마이저란 사람으로 생각하면 두뇌에 해당하는 부분이다.

한마디로말해 SQL을 위한 최적의 실행계획을 생성하는 알고리즘이다.

 

 

HINT 사용 예

  • SQL 문장 내에 "/*(아스타) + 힌트내용 */" 이 추가 된다.(주석표시에 더하기가 있다.)
  • BYPASS_UJVC 힌트
    - ByPass Updatable Join View Check 의 약자
    - UPDATE 시에 키 보존 테이블에 대해 DML이 불가능한 것을 가능하게 해주는 힌트.
    - Oracle 10g에서 11g로 업그레이드 되면서 사용 불가능해짐.
    - 서브쿼리나 MERGE INTO 문으로 변경해서 사용해야함.