본문 바로가기
개발공부 일지/오라클

오라클) Concatenation Operator (USE_CONCAT 힌트)

by Box Cat 2024. 9. 1.
728x90
반응형

ex1)
SELECT /*+ use_concat */* FROM EMPLOYEES WHERE EMPLOYEE_ID = 103 OR DEPARTMENT_ID = 80;

 CONCATENATION 연산자가 들어가면, UNION ALL 처럼 동작하여 OR의 갯수만큼 SQL문이 실행된다.
 위의 ex1) 구문에서는  EMPLOYEE_ID = 103 ,  DEPARTMENT_ID = 80에 대해 각각 SQL문이 실행되어 2번 실행 된다. 
참고로  USE_CONCAT 힌트를 사용하면 CONCATENATION 연산자를 유도 할 수 있다.
 
 
 

ex2)
SELECT * FROM employees WHERE employee_id = 103 OR department_id = 80;

ex2)에서는 옵티마이저가 OR 구문의 갯수 만큼 실행하는( CONCATENATION 연산자) 대신에, FULL TABLE을 진행한 후에 Filter Predicates에서 조건을 필터링하는 방식으로 진행하였다.

 
728x90
반응형

댓글