문서의 선택한 두 판 사이의 차이를 보여줍니다.
양쪽 이전 판 이전 판 다음 판 | 이전 판 | ||
study:oracle:datadb:4week_2:chap5 [2010/05/27 10:54] zummaz |
study:oracle:datadb:4week_2:chap5 [2010/05/27 13:01] (현재) zummaz |
||
---|---|---|---|
줄 49: | 줄 49: | ||
===PQ_DISTRIBUTE=== | ===PQ_DISTRIBUTE=== | ||
*병렬 조인의 속도를 향상시키기 위해 슬레이브 프로세스 생산자(Producer)와 소비자(Consumer)프로세스 사이에서 조인할 테이블의 로우를 서로 주고 받는 할당작업(Distrubution)을 하는 방법을 정의 하는 힌트이다. | *병렬 조인의 속도를 향상시키기 위해 슬레이브 프로세스 생산자(Producer)와 소비자(Consumer)프로세스 사이에서 조인할 테이블의 로우를 서로 주고 받는 할당작업(Distrubution)을 하는 방법을 정의 하는 힌트이다. | ||
+ | *이러한 할당 방법을 정의함으로써 병렬 조인의 성능 향상을 유도할 수 있다. | ||
표현 방식: /*+ PQ_DISTRIBUTE(table, | 표현 방식: /*+ PQ_DISTRIBUTE(table, | ||
- | | + | *outer_distribution: |
- | | + | *inner_distribution: |
할당방법: | 할당방법: | ||
* HASH: 조인 키 컬럼에 대해 해쉬 함수를 수행한 결과값을 이용하여 소비자 프로세스에 로우들을 할당 | * HASH: 조인 키 컬럼에 대해 해쉬 함수를 수행한 결과값을 이용하여 소비자 프로세스에 로우들을 할당 | ||
* BROADCAST: 외측 테이블에 전체 로우를 모든 Consumer 프로세스로 보냄 | * BROADCAST: 외측 테이블에 전체 로우를 모든 Consumer 프로세스로 보냄 | ||
- | * PARTITON: 상대편 조인 대사 테이블이 조인 키 컬럼으로 파티션되어 있는 경우 파티션 키 값을 이용하여 로우들을 Consumer프로세스에 할당 | + | * PARTITON: 상대편 조인 대상 테이블이 조인 키 컬럼으로 파티션되어 있는 경우 파티션 키 값을 |
+ | | ||
* NONE: 조인 대상 로우들을 랜덤하게 파티셔닝함 | * NONE: 조인 대상 로우들을 랜덤하게 파티셔닝함 | ||
줄 65: | 줄 68: | ||
FROM TAB1 a, TAB2 b | FROM TAB1 a, TAB2 b | ||
WHERE a.col1 = b.col2; | WHERE a.col1 = b.col2; | ||
+ | |||
+ | * 참고: | ||
===PARALLEL_INDEX=== | ===PARALLEL_INDEX=== | ||
파티션 인덱스(Partitioned Index)에 대한 인덱스 범위 스캔을 병렬로 수행하기 위한 병렬도를 지정하는 힌트이다. | 파티션 인덱스(Partitioned Index)에 대한 인덱스 범위 스캔을 병렬로 수행하기 위한 병렬도를 지정하는 힌트이다. |