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. 인라인 뷰 안에서 많은 가공이 이루어 질 경우