나의 개발 일상 기록
[SQL] ORACLE 힌트절 본문
ORACLE 힌트절
1. 힌트절이란?
CBO 방식에서 옵티마이저는 주어진 환경(통계정보, SQL문)하에서 최적의 실행계획을 제공합니다. 그런데 잘못된 SQL문이나 부정확한 통계정보로 인하여 엉뚱한 실행 계획을 제공할 때도 간혹 있습니다. 이때 힌트절을 통해 잘못된 실행 계획을 바로 잡을 수 있습니다. 결국 힌트절은 옵티마이저의 실수를 만회할 수 있는 개발자의 마지막 무기라 할 수 있습니다.
2. 사용법
SELECT /*+ [힌트절]*/
SQL문에서 힌트절은 주석문 안에 표시합니다. 그래서 잘못된 힌트절로 인하여 에러를 리턴하는 일은 없습니다. 단지 힌트절의 내용대로 적용되지 않을 뿐입니다.
3. 대표적인 ORACLE 힌트절
1) 접근 순서를 결정하는 힌트절
- ORDERED : FROM 절에 나열된 테이블 순서대로 접근합니다.(SQL문에 종속적)
- LEADING : 테이블 접근 순서를 명시적으로 표시한다.(SQL문에 독립적)
2) 접근 방법을 결정하는 힌트절
- USE_NL : NESTED LOOP JOIN 방식으로 조인하도록 유도합니다.(순차적인 접근 방법)
- USE_HASH : HASH JOIN 방식으로 조인하도록 유도합니다.(해시 함수를 이용한 접근 방법)
3) 자원 사용을 결정하는 힌트절
- INDEX : 인덱스를 통한 ACCESS PATH 유도합니다.
- FULL : 테이블을 FULL SCAN 합니다.
- PARALLEL : 병렬 처리를 통하여 성능을 향상시킵니다.
'SQL' 카테고리의 다른 글
| [MySQL] Connection Blocked Error (0) | 2022.02.15 |
|---|---|
| [ORACLE] 실행계획 보는 법 #2 (0) | 2021.04.22 |
| [SQL] 바인드 변수와 하드 파싱 (0) | 2021.03.17 |
| [ORACLE] 실행계획 보는 법 (0) | 2021.03.17 |
| [ORACLE] SELECT문 (0) | 2021.03.17 |
Comments