오라클 성능 고도화 원리와 해법 II (2012년)
PQ_DISTRIBUTE 힌트 0 0 99,999+

by 구루비스터디 병렬처리 PQ_DISTRIBUTE [2018.04.01]


PQ_DISTRIBUTE 힌트


용도: 다른 인트와 동일함


동작 범위: 파티션 프로세스에 데이터 분배 하는 부분에만 관여함(조인은 별개)


구문: PQ_DISTRIBUTE(INNER_TABLE, OUTER_TABLE 분배방식, INNER_TABLE 분배방식)


분배 방식
  • PQ_DISTRIBUTE(INNER, NONE, NONE)
    • Full Partition Wise 조인 유도
    • 양 쪽 모두 조인 컬럼에 대해 동일 기준 파티셔닝 되어 있을 때 작동


  • PQ_DISTRIBUTE(INNER, PARTITION, NONE)
    • Partial Partition Wise 조인 유도
    • Outer Table 을 Inner Table 에 대해 동적 파티셔닝
    • Inner Table 이 Join column 기준 파티션 되어 있을 때 가능


  • PQ_DISTRIBUTE(INNER, NONE, PARTITION)
    • 위와 반대


  • PQ_DISTRIBUTE(INNER, HASH, HASH)
    • 양 테이블 조인 컬럼에 해시 함수 적용해서 동적 파티셔닝


  • PQ_DISTRIBUTE(INNER, BROADCAST, NONE)
    • Outer Table Broadcast 유도


  • PQ_DISTRIBUTE(INNER, NONE, BROADCAST)
    • Inner Table Broadcast 유도


힌트 사용한 튜닝 사례
  • 10g 이후부터는 통계 정보 사용해 동적 샘플링하여 옵티마이저 동작 방식의 오류가 적음
  • 아래와 같은 상황에서는 옵티마이저 판단 부정확 해 질 가능성 있음


  1. 조인을 여러번 거쳐 카디널리티가 부정확해 질 경우
  2. 데이터 분포가 고르지 못한 컬럼이 조건절에 많이 사용 될 경우
  3. 인라인 뷰 안에서 많은 가공이 이루어 질 경우
"구루비 데이터베이스 스터디모임" 에서 2012년에 "오라클 성능 고도화 원리와 해법 II " 도서를 스터디하면서 정리한 내용 입니다.

- 강좌 URL : http://www.gurubee.net/lecture/3312

- 구루비 강좌는 개인의 학습용으로만 사용 할 수 있으며, 다른 웹 페이지에 게재할 경우에는 출처를 꼭 밝혀 주시면 고맙겠습니다.~^^

- 구루비 강좌는 서비스 제공을 위한 목적이나, 학원 홍보, 수익을 얻기 위한 용도로 사용 할 수 없습니다.

댓글등록
SQL문을 포맷에 맞게(깔끔하게) 등록하려면 code() 버튼을 클릭하여 작성 하시면 됩니다.
로그인 사용자만 댓글을 작성 할 수 있습니다. 로그인, 회원가입