티스토리 뷰
힌트절이란 무엇인가?
CBO 방식에서 옵티마이저는 주어진 환경(통계정보, SQL문) 하에서 최적의 실행 계획(PLAN)을 제공한다.
그런데 잘못된 SQL문 이나 부정확한 통계정보로 인하여 엉뚱한 실행 계획을 제공할 때도 간혹 있다.
이때 힌트절을 통해 잘못된 실행 계획을 바로 잡을 수 있다.
결국 힌트절은 옵티마이저의 실수를 만회할 수 있는 개발자의 마지막 무기라 할 수 있다.
SELECT /*+ [힌트절] */ ...
FROM ...
WHERE ...
SQL문에서 힌트절은 주석문 안에 표시한다.
그래서 잘못된 힌트절로 인하여 에러를 리턴하는 일은 없다. 단지 힌트절의 내용대로 적용되지 않을 뿐이다. 오라클이 제공하는 힌트절의 종류는 굉장히 많다. 수 많은 힌트절을 모두 이해하고 상황에 맞게 사용하기에는 너무 힘들다.
가장 많이 사용되는 핵심적인 7가지 힌트절
힌트절 |
설명 |
ORDERED |
FROM 절에 나열된 테이블 순서대로 접근한다. (SQL문에 종속적) |
LEADING |
테이블 접근 순서를 명시적으로 표시한다. (SQL문에 독립적) |
힌트절 |
설명 |
USE_NL |
NESTED LOOP JOIN 방식으로 조인하도록 유도한다. (순차적인 접근 방법) |
USE_HASH |
HASH JOIN 방식으로 조인하도록 유도한다. (해시 함수를 이용한 접근 방법) |
힌트절 |
설명 |
INDEX |
인덱스를 통한 ACCESS PATH를 유도한다. |
FULL |
테이블을 FULL SCAN한다. |
PARALLEL |
병렬 처리를 통하여 성능을 높인다. |
반응형
LIST
'데이터베이스 > SQL 튜닝' 카테고리의 다른 글
힌트의 종류별 분류 (0) | 2018.06.21 |
---|---|
배치 튜닝에서 마법사 같은 힌트절 삼총사 ? USE_HASH, FULL, PARALLEL (0) | 2018.05.24 |
자원 사용을 결정하는 힌트절? INDEX, FULL, PARALLEL (0) | 2018.05.23 |
접근 방법을 결정하는 힌트절? USE_NL, USE_HASH (0) | 2018.05.21 |
접근 순서를 결정하는 힌트절 ? ORDERED, LEADING (0) | 2018.05.18 |
댓글