| 14번째 줄: | 14번째 줄: | ||
* 이 최적화는 뷰를 거치지 않고 직접 조인하는 것과 유사한 효율을 내도록 만듭니다. | * 이 최적화는 뷰를 거치지 않고 직접 조인하는 것과 유사한 효율을 내도록 만듭니다. | ||
=== 참조) VIEW PUSHDOWN (View Pushed Predicate - 뷰 필터 조건 푸시다운) === | === 참조) [[View pushed predicate (조건절 PUSHDOWN)|VIEW PUSHDOWN (View Pushed Predicate - 뷰 필터 조건 푸시다운)]] === | ||
{{틀:핵심 | {{틀:핵심 | ||
|제목=''' <big>View Pushed Predicate - WHERE절 필터조건 푸시다운)</big>''' | |제목=''' <big>View Pushed Predicate - WHERE절 필터조건 푸시다운)</big>''' | ||
2025년 8월 25일 (월) 13:03 판
JPPD (Join Predicate PushDown)
vpn_key Join Predicate PushDown (JPPD - 조인 조건 푸시다운)
playlist_add_check 조인 푸시다운은 뷰 쿼리 밖에 있는 조인 조건이 뷰 안쪽에서 먼저 처리되는 최적화 기법
- 뷰의 기본 테이블과 외부 테이블 간의 조인 조건이 뷰 내부로 "밀려들어갑니다-PUSHDOWN".
- 이렇게 되면 뷰는 조인에 필요한 데이터만 미리 필터링하여 가져오게 됩니다.
처리 예시
- 뷰 `V_EMP`가 `employees` 테이블의 모든 직원을 반환합니다.
- 쿼리는 `V_EMP`와 `departments` 테이블을 `department_id`로 조인합니다.
- 옵티마이저는 `V_EMP`와 `departments`의 조인 조건을 뷰 내부로 푸시하여, `employees` 테이블에서 `department_id`가 일치하는 행만 먼저 가져오게 합니다.
- 이 최적화는 뷰를 거치지 않고 직접 조인하는 것과 유사한 효율을 내도록 만듭니다.
참조) VIEW PUSHDOWN (View Pushed Predicate - 뷰 필터 조건 푸시다운)
vpn_key View Pushed Predicate - WHERE절 필터조건 푸시다운)
playlist_add_check 뷰 필터 푸시다운은 뷰 쿼리 밖에 있는 `WHERE` 절의 필터 조건이 뷰 안쪽으로 옮겨져서 먼저 처리되는 최적화 기법.
- 뷰를 참조하는 쿼리의 `WHERE` 절 조건이 뷰의 기본 테이블로 PUSH 되어 데이터를 읽는 시점에서 필터링이 이루어집니다.
- 이렇게 되면 뷰는 조인에 필요한 데이터만 미리 필터링하여 가져오게 됩니다.
처리 예시
- 뷰 `V_SALES`는 `sales` 테이블의 전체 판매 내역을 반환합니다.
- 쿼리는 `V_SALES`에서 `sale_date`가 특정 날짜인 데이터만 조회합니다.
- 옵티마이저는 `sale_date` 조건을 `sales` 테이블로 푸시하여, 전체 테이블을 스캔하는 대신 `sale_date`에 해당하는 행만 스캔하게 합니다.
JPPD와 View PUSHDOWN(View Pushed Predicate) 차이점
| 구분 | Join Predicate Pushdown | View Pushed Predicate |
|---|---|---|
| 대상 | 조인 조건 (join 절) | 필터 조건 (`WHERE` 절) |
| 원리 | 뷰 외부의 조인 조건을 뷰 안으로 이동 | 뷰 외부의 필터 조건을 뷰 안으로 이동 |
| 목표 | 조인에 필요한 데이터만 미리 필터링 | 필터링에 필요한 데이터만 미리 필터링 |
| 결과 | 불필요한 조인 처리량 감소 | 불필요한 테이블 I/O 감소 |