"오늘의 문제를, 내일의 기록으로 남깁니다."

막연한 이론보다, 구체적인 코드가 필요할 때. 직접 겪고 해결한 문제들을 기록합니다. 실무에서 부딪히는 진짜 이슈와, 내가 이해한 방식 그대로 정리한 가이드입니다.

웹개발/Oracle

Oracle INDEX 힌트 완벽 가이드 (INDEX, FULL, NO_INDEX 실전 예제 포함)👉 실행계획을 바꾸는 오라클 힌트 사용법

자바를잡아 2025. 7. 1. 21:50
반응형

Oracle INDEX 힌트 완벽 가이드 (INDEX, FULL, NO_INDEX 실전 예제 포함)

Oracle에서 쿼리 성능을 높이기 위해 사용하는 대표적인 기법이 힌트(Hint)입니다.
그중에서도 INDEX 관련 힌트는 성능 튜닝 시 반드시 알아야 할 요소입니다.

✅ INDEX 힌트 종류

힌트설명
INDEX(table_name index_name)특정 인덱스를 강제로 사용
FULL(table_name)풀 스캔을 강제
NO_INDEX(table_name index_name)특정 인덱스 사용하지 않도록

📌 기본 사용 예

SELECT /*+ INDEX(EMP EMP_IDX1) */ * FROM EMP WHERE ENAME = 'KING';

✅ 상황별 사용 예

1. INDEX 강제 사용

SELECT /*+ INDEX(DEPT DEPT_IDX1) */ * FROM DEPT WHERE LOC = 'DALLAS';

2. 특정 인덱스 제외

SELECT /*+ NO_INDEX(EMP EMP_IDX1) */ * FROM EMP WHERE JOB = 'CLERK';

3. 풀 스캔 유도

SELECT /*+ FULL(EMP) */ * FROM EMP;

📌 주의사항

  • 힌트는 오라클 옵티마이저에게 “요청”이지 강제는 아님
  • 쿼리 복잡성/통계 정보에 따라 무시될 수 있음
  • 힌트는 유지보수 어려움 유발 → 로그 분석, 튜닝 시에만 제한적으로 활용

✅ 마무리

INDEX 힌트는 실행계획을 튜닝할 때 유용하지만, 정확한 사용 맥락이 필요합니다.
EXPLAIN PLAN과 함께 사용하면서 성능 차이를 직접 확인해보는 것이 중요합니다.

🔔 다음 글 예고

[EXPLAIN PLAN 실행 결과 해석법]

반응형