티스토리 뷰

힌트절이란 무엇인가?


CBO 방식에서 옵티마이저는 주어진 환경(통계정보, SQL문) 하에서 최적의 실행 계획(PLAN)을 제공한다. 

그런데 잘못된 SQL문 이나 부정확한 통계정보로 인하여 엉뚱한 실행 계획을 제공할 때도 간혹 있다.

이때 힌트절을 통해 잘못된 실행 계획을 바로 잡을 수 있다. 

결국 힌트절은 옵티마이저의 실수를 만회할 수 있는 개발자의 마지막 무기라 할 수 있다.


SELECT /*+ [힌트절] */ ...

  FROM ...

WHERE ...


SQL문에서 힌트절은 주석문 안에 표시한다. 

그래서 잘못된 힌트절로 인하여 에러를 리턴하는 일은 없다. 단지 힌트절의 내용대로 적용되지 않을 뿐이다. 오라클이 제공하는 힌트절의 종류는 굉장히 많다. 수 많은 힌트절을 모두 이해하고 상황에 맞게 사용하기에는 너무 힘들다. 


가장 많이 사용되는 핵심적인 7가지 힌트절


1.접근 순서을 결정하는 힌트절

힌트절

설명

ORDERED

FROM 절에 나열된 테이블 순서대로 접근한다. (SQL문에 종속적)

LEADING

테이블 접근 순서를 명시적으로 표시한다. (SQL문에 독립적)



2.접근 방법을 결정하는 힌트절

힌트절

설명

USE_NL

NESTED LOOP JOIN 방식으로 조인하도록 유도한다. (순차적인 접근 방법)

USE_HASH

HASH JOIN 방식으로 조인하도록 유도한다. (해시 함수를 이용한 접근 방법)



3.자원 사용을 결정하는 힌트절

힌트절

설명

INDEX

인덱스를 통한 ACCESS PATH를 유도한다.

FULL

테이블을 FULL SCAN한다.

PARALLEL 

병렬 처리를 통하여 성능을 높인다.





반응형
LIST
댓글
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
TAG
more
«   2024/12   »
1 2 3 4 5 6 7
8 9 10 11 12 13 14
15 16 17 18 19 20 21
22 23 24 25 26 27 28
29 30 31
글 보관함