728x90
반응형
오라클 힌트절에 대해 알아보자.
오라클의 옵티마이저가 최적의 실행 경로를 만들어 내지만
그럼에도 개발자들이 생각한 경로와 다르게 실행되는 경우가 종종 있다.
그럴 때 사용 하는 게 힌트절이라고 생각하면 된다. (옵티마이저가 힌트를 무시할 수도 있다.)
나는 서비스 중이고 이미 많은 데이터가 있고 인덱스 추가가 힘들 때 최후의 튜닝 방법으로 썼다.
보통은 인덱스 추가로 해결되는 경우도 많다.
HINT 사용법
힌트는 /*+ {hint} */ 형태로 사용한다.
SELECT /*+ {hint} */
*
FROM DUAL;
자주 사용하는 HINT 유형과 종류
JOIN 방식
/*+ USE_NL(TABLE_NAME) */
- NESTED LOOP JOIN
/*+ USE_HASH(TABLE_NAME) */
- HASH JOIN
/*+ USE_MERGE(TABLE_NAME) */
- SORT MERGE JOIN
JOIN 순서
/*+ LEADING(TABLE A, TABLE B, ...) */
- HINT 내에 테이블 순으로 JOIN
INDEX 스캔 방식
/*+ INDEX(TABLE_NAME INDEX) */
- INDEX 스캔
/*+ FULL(TABLE_NAME) */
- TABLE FULL SCAN 유도
/*+ INDEX_{TYPE} (TABLE_NAME INDEX) */
- TYPE - DESC
- INDEX 역순으로 스캔
- TYPE - FFS
- INDEX FAST FULL SCAN
- TYPE - SS
- INDEX SKIP SCAN
병렬 처리
/*+ PARALLEL (TABLE_NAME 병렬수) */
- 병렬수만큼 병렬처리
https://docs.oracle.com/cd/B10500_01/server.920/a96533/hintsref.htm
Optimizer Hints
Optimizer hints can be used with SQL statements to alter execution plans. This chapter explains how to use hints to force various approaches. The chapter contains the following sections: Understanding Optimizer Hints Hints let you make decisions usually ma
docs.oracle.com
외에도 힌트가 많으니 적재적소에 사용하기 바란다.
728x90
반응형
'개발 > ORACLE' 카테고리의 다른 글
ORACLE - AUTO_INCREMENT 기능 구현 (0) | 2025.01.20 |
---|---|
ORACLE - ORA-25156 ANSI 조인, (+) (2) | 2024.11.20 |
Oracle 인덱스 (0) | 2024.08.16 |
Oracle Explain Plan Operation (0) | 2024.08.02 |
Oracle 튜닝 - 실행 계획 (0) | 2024.08.02 |