008. UNION을 사용한 쓸데없이 긴 표현 - llighter/database GitHub Wiki
UNION을 활용한 조건 분기는 WHERE 구만 조금씩 다른 여러 개의 SELECT 구문을 합쳐서, 복수의 조건에 일치하는 하나의 결과 집합을 업고 싶을 때 사용한다.
- 단점: 내부적으로 여러 개의
SELECT구문을 실행하는 실행 계획으로 해석 -> I/O 비용 증가
1. UNION을 사용한 조건 분기와 관련도니 간단한 예제
p109 예제 추가할 것
- UNION을 사용했을 떄의 실행 계획 문제
실행 계획 추가할 것
UNION쿼리는Items테이블에 2회 접근한다는 것을 알 수 있다.- 접근할 떄마다
TABLE ACCESS FULL이 발생
- 정확한 판단 없은 UNION 사용 회피
2. WHERE 구에서 조건 분기를 하는 사람은 초보자
위의 예제와 이어서 추가할 것
3. SELECT 구를 사용한 조건 분기의 실행 계획
실행 계획 추가할 것
Items테이블 접근이 1회로 줄어듬.- 가독성 향상
UNION을 사용한 분기는SELECT'구문'을 기본 단위로 분기하고 있다. -> 절차 지향형의 발상
CASE식을 사용한 분기는 '식'을 바탕으로 하는 사고 이다.
'구문' -> '식' : SQL을 마스터하는 열쇠!