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
반응형
'개발공부 일지 > 오라클' 카테고리의 다른 글
오라클)계층형 쿼리 CONNECT BY PRIOR , ORDER SIBLINGS BY (0) | 2024.10.29 |
---|---|
오라클) 실행계획에서 VIEW Operator - 뷰 연산자 (0) | 2024.09.01 |
오라클) INSERT ALL 구문 - Pivoting Insert(피봇) (0) | 2024.08.26 |
오라클) 윈도우 함수(Window Function)의 FIRST_VALUE(), LAST_VALUE() 예시 (0) | 2024.08.26 |
오라클) 윈도우 함수(Window Function)의 Interval 키워드 사용법 (0) | 2024.08.26 |
댓글