h3 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 유도





h5.힌트 사용한 튜닝 사례

책 예시 참조

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

1. 조인을 여러번 거쳐 카디널리티가 부정확해 질 경우
2. 데이터 분포가 고르지 못한 컬럼이 조건절에 많이 사용 될 경우
3. 인라인 뷰 안에서 많은 가공이 이루어 질 경우