개요
과거에는 ORDERED를 많이 사용했으나, 복잡한 쿼리에서 일부 테이블의 순서만 고정하고 나머지는 옵티마이저의 판단에 맡겨야 할 경우가 많으므로 현재는 LEADING 힌트를 사용하는 것이 정석이다. 또한 LEADING은 여러 개를 조합하거나 다른 힌트와 결합했을 때 부작용이 적다.
| 항목 | ORDERED | LEADING |
|---|---|---|
| 순서 결정 기준 | FROM 절의 기술 순서 | 힌트 내 기술된 테이블 순서 |
| 유연성 | 낮음 (물리적 순서 고정 필요) | 높음 (원하는 테이블만 우선 지정 가능) |
| 유지보수 용이성 | 낮음 (FROM 절 변경 시 영향 큼) | 높음 (FROM 절 변경과 무관) |
| 사용 빈도 | 현대 튜닝에서는 권장하지 않음 | 실무 튜닝에서 주로 권장됨 |
① ORDERED 힌트
-
작동 원리:
FROM절에 기술된 테이블 순서대로 조인을 수행한다. -
특징:
-
FROM절의 순서가 조인 순서를 완전히 결정하므로 직관적이다. -
테이블이 추가되거나 순서가 바뀌면 힌트의 의도와 무관하게 조인 순서가 변할 위험이 있다.
-
조인 순서를 바꾸려면 반드시
FROM절의 테이블 위치를 물리적으로 변경해야 한다.
-
② LEADING 힌트
-
작동 원리: 힌트 인자로 기술한 테이블 순서대로 조인을 시작한다.
-
특징:
-
FROM절의 테이블 배치 순서와 상관없이 조인 순서를 제어할 수 있다. -
LEADING(A B)와 같이 기술하면 A와 B를 우선적으로 조인하며, 나머지 테이블의 순서는 옵티마이저가 비용(Cost)을 고려하여 판단한다. -
ORDERED보다 유연하며, 유지보수 측면에서 더 안전하다.
-