개요

과거에는 ORDERED를 많이 사용했으나, 복잡한 쿼리에서 일부 테이블의 순서만 고정하고 나머지는 옵티마이저의 판단에 맡겨야 할 경우가 많으므로 현재는 LEADING 힌트를 사용하는 것이 정석이다. 또한 LEADING은 여러 개를 조합하거나 다른 힌트와 결합했을 때 부작용이 적다.

항목ORDEREDLEADING
순서 결정 기준FROM 절의 기술 순서힌트 내 기술된 테이블 순서
유연성낮음 (물리적 순서 고정 필요)높음 (원하는 테이블만 우선 지정 가능)
유지보수 용이성낮음 (FROM 절 변경 시 영향 큼)높음 (FROM 절 변경과 무관)
사용 빈도현대 튜닝에서는 권장하지 않음실무 튜닝에서 주로 권장됨

① ORDERED 힌트

  • 작동 원리: FROM 절에 기술된 테이블 순서대로 조인을 수행한다.

  • 특징:

    • FROM 절의 순서가 조인 순서를 완전히 결정하므로 직관적이다.

    • 테이블이 추가되거나 순서가 바뀌면 힌트의 의도와 무관하게 조인 순서가 변할 위험이 있다.

    • 조인 순서를 바꾸려면 반드시 FROM 절의 테이블 위치를 물리적으로 변경해야 한다.

② LEADING 힌트

  • 작동 원리: 힌트 인자로 기술한 테이블 순서대로 조인을 시작한다.

  • 특징:

    • FROM 절의 테이블 배치 순서와 상관없이 조인 순서를 제어할 수 있다.

    • LEADING(A B)와 같이 기술하면 A와 B를 우선적으로 조인하며, 나머지 테이블의 순서는 옵티마이저가 비용(Cost)을 고려하여 판단한다.

    • ORDERED보다 유연하며, 유지보수 측면에서 더 안전하다.