메뉴 여닫기
개인 메뉴 토글
로그인하지 않음
만약 지금 편집한다면 당신의 IP 주소가 공개될 수 있습니다.

JPPD(Join Predicate PushDown,조인절 PUSHDOWN): 두 판 사이의 차이

DB스터디
편집 요약 없음
태그: 수동 되돌리기
 
(사용자 2명의 중간 판 17개는 보이지 않습니다)
1번째 줄: 1번째 줄:
== JPPD (Join Predicate PushDown) ==
== JPPD (Join Predicate PushDown) ==
=== Join Predicate PushDown (JPPD - 조인 조건 푸시다운) ===
{{틀:핵심
# 조인 푸시다운은 뷰 쿼리 밖에 있는 조인 조건이 뷰 안쪽에서 먼저 처리되는 최적화 기법입니다.
|제목=''' <big>Join Predicate PushDown (JPPD - 조인 조건 푸시다운)</big>'''
==== 원리 ====
|내용= ''' <big>조인 푸시다운은 뷰 쿼리 밖에 있는 조인 조건이 뷰 안쪽에서 먼저 처리되는 최적화 기법</big>'''
# 뷰의 기본 테이블과 외부 테이블 간의 조인 조건이 뷰 내부로 "밀려들어갑니다-PUSHDOWN". 이렇게 되면 뷰는 조인에 필요한 데이터만 미리 필터링하여 가져오게 됩니다.
:::# 뷰의 기본 테이블과 외부 테이블 간의 조인 조건이 뷰 내부로 "밀려들어갑니다-PUSHDOWN".
==== 처리 예시 ====
:::# 이렇게 되면 뷰는 조인에 필요한 데이터만 미리 필터링하여 가져오게 됩니다.
}}
 
 
=== 처리 예시 ===
# 뷰 `V_EMP`가 `employees` 테이블의 모든 직원을 반환합니다.
# 뷰 `V_EMP`가 `employees` 테이블의 모든 직원을 반환합니다.
# 쿼리는 `V_EMP`와 `departments` 테이블을 `department_id`로 조인합니다.
# 쿼리는 `V_EMP`와 `departments` 테이블을 `department_id`로 조인합니다.
10번째 줄: 14번째 줄:
* 이 최적화는 뷰를 거치지 않고 직접 조인하는 것과 유사한 효율을 내도록 만듭니다.
* 이 최적화는 뷰를 거치지 않고 직접 조인하는 것과 유사한 효율을 내도록 만듭니다.


=== VIEW PUSHDOWN (View Pushed Predicate - 뷰 필터 조건 푸시다운) ===
=== 참조) [[View pushed predicate (조건절 PUSHDOWN)|VIEW PUSHDOWN (View Pushed Predicate - WHERE절 필터조건 푸시다운)]] ===
* 뷰 필터 푸시다운은 뷰 쿼리 밖에 있는 `WHERE` 절의 필터 조건이 뷰 안쪽으로 옮겨져서 먼저 처리되는 최적화 기법.
{{틀:서브
|제목=''' View Pushed Predicate - WHERE절 필터조건 푸시다운)'''
* 조건절 PUSHDOWN의 주요특징
** 뷰를 참조하는 쿼리의 `WHERE` 절 조건이 뷰의 기본 테이블로 PUSH 되어 데이터를 읽는 시점에서 필터링이 이루어집니다.
** 이렇게 되면 뷰는 조인에 필요한 데이터만 미리 필터링하여 가져오게 됩니다.
** 고정된길이 : 입력값의 크기와 상관없이 항상 동일한 길이의 출력값을 가진다.
|내용= ''' 뷰 필터 푸시다운은 뷰 쿼리 밖에 있는 `WHERE` 절의 필터 조건이 뷰 안쪽으로 옮겨져서 먼저 처리되는 최적화 기법.'''
}}


==== 원리 ====
=== 처리 예시 ===
# 뷰를 참조하는 쿼리의 `WHERE` 절 조건이 뷰의 기본 테이블로 PUSH 되어 데이터를 읽는 시점에서 필터링이 이루어집니다.
 
==== 처리 예시 ====
# 뷰 `V_SALES`는 `sales` 테이블의 전체 판매 내역을 반환합니다.
# 뷰 `V_SALES`는 `sales` 테이블의 전체 판매 내역을 반환합니다.
# 쿼리는 `V_SALES`에서 `sale_date`가 특정 날짜인 데이터만 조회합니다.
# 쿼리는 `V_SALES`에서 `sale_date`가 특정 날짜인 데이터만 조회합니다.
# 옵티마이저는 `sale_date` 조건을 `sales` 테이블로 푸시하여, 전체 테이블을 스캔하는 대신 `sale_date`에 해당하는 행만 스캔하게 합니다.
# 옵티마이저는 `sale_date` 조건을 `sales` 테이블로 푸시하여, 전체 테이블을 스캔하는 대신 `sale_date`에 해당하는 행만 스캔하게 합니다.


=== JPPD와 View PUSHDOWN(View Pushed Predicate) 차이점 ===
=== JPPD와 View PUSHDOWN(View Pushed Predicate) 차이점 ===
{| class="wikitable"
::::{| class="tb_gray"
|+ Join Predicate PushDown VS. View Pushed Predicate  
|+ [ Join Predicate PushDown VS. View Pushed Predicate ]
|-
|-
! 구분 !! Join Predicate Pushdown !! View Pushed Predicate  
! 구분 !! Join Predicate Pushdown !! View Pushed Predicate  
36번째 줄: 43번째 줄:
| 결과 || 불필요한 조인 처리량 감소 || 불필요한 테이블 I/O 감소  
| 결과 || 불필요한 조인 처리량 감소 || 불필요한 테이블 I/O 감소  
|}
|}


=== [[View pushed predicate (조건절 PUSHDOWN)|관련글 - View pushed predicate (조건절 PUSHDOWN)]]===
=== [[View pushed predicate (조건절 PUSHDOWN)|관련글 - View pushed predicate (조건절 PUSHDOWN)]]===


[[category:oracle]]
[[category:oracle]]

2026년 10월 21일 (수) 12:40 기준 최신판

JPPD (Join Predicate PushDown)

  vpn_key Join Predicate PushDown (JPPD - 조인 조건 푸시다운)

  playlist_add_check 조인 푸시다운은 뷰 쿼리 밖에 있는 조인 조건이 뷰 안쪽에서 먼저 처리되는 최적화 기법

  1. 뷰의 기본 테이블과 외부 테이블 간의 조인 조건이 뷰 내부로 "밀려들어갑니다-PUSHDOWN".
  2. 이렇게 되면 뷰는 조인에 필요한 데이터만 미리 필터링하여 가져오게 됩니다.


처리 예시

  1. 뷰 `V_EMP`가 `employees` 테이블의 모든 직원을 반환합니다.
  2. 쿼리는 `V_EMP`와 `departments` 테이블을 `department_id`로 조인합니다.
  3. 옵티마이저는 `V_EMP`와 `departments`의 조인 조건을 뷰 내부로 푸시하여, `employees` 테이블에서 `department_id`가 일치하는 행만 먼저 가져오게 합니다.
  • 이 최적화는 뷰를 거치지 않고 직접 조인하는 것과 유사한 효율을 내도록 만듭니다.

참조) VIEW PUSHDOWN (View Pushed Predicate - WHERE절 필터조건 푸시다운)

    View Pushed Predicate - WHERE절 필터조건 푸시다운)
  • 조건절 PUSHDOWN의 주요특징
    • 뷰를 참조하는 쿼리의 `WHERE` 절 조건이 뷰의 기본 테이블로 PUSH 되어 데이터를 읽는 시점에서 필터링이 이루어집니다.
    • 이렇게 되면 뷰는 조인에 필요한 데이터만 미리 필터링하여 가져오게 됩니다.
    • 고정된길이 : 입력값의 크기와 상관없이 항상 동일한 길이의 출력값을 가진다.
    뷰 필터 푸시다운은 뷰 쿼리 밖에 있는 `WHERE` 절의 필터 조건이 뷰 안쪽으로 옮겨져서 먼저 처리되는 최적화 기법.

처리 예시

  1. 뷰 `V_SALES`는 `sales` 테이블의 전체 판매 내역을 반환합니다.
  2. 쿼리는 `V_SALES`에서 `sale_date`가 특정 날짜인 데이터만 조회합니다.
  3. 옵티마이저는 `sale_date` 조건을 `sales` 테이블로 푸시하여, 전체 테이블을 스캔하는 대신 `sale_date`에 해당하는 행만 스캔하게 합니다.

JPPD와 View PUSHDOWN(View Pushed Predicate) 차이점

[ Join Predicate PushDown VS. View Pushed Predicate ]
구분 Join Predicate Pushdown View Pushed Predicate
대상 조인 조건 (join 절) 필터 조건 (`WHERE` 절)
원리 뷰 외부의 조인 조건을 뷰 안으로 이동 뷰 외부의 필터 조건을 뷰 안으로 이동
목표 조인에 필요한 데이터만 미리 필터링 필터링에 필요한 데이터만 미리 필터링
결과 불필요한 조인 처리량 감소 불필요한 테이블 I/O 감소

관련글 - View pushed predicate (조건절 PUSHDOWN)