2024. 4. 18. 15:25ㆍDBMS/PERFORMANCE
■ 둘다 파티셔닝 되지 않은 경우
-어느 한쪽도 조인 컬럼에 대해 파티셔닝이 되지 않은 상황
-둘 중 하나의 테이블이 매우 작을 때 유리하다.
-pq_distribute(e,broadcast,none) : 작은테이블을 큰 테이블쪽으로 브로드캐스트한 한다.
select /*+ gather_plan_ststistics leading(d,e) use_hash(e) full(d) full(e) parallel(d 2) parallel(e 2) pq_distribute(e,broadcast,none) */
e.employee_id,e.last_name,e.salary,d.department_id from dept_non d, emp_non e
where e.department_id = d.department_id;
leading(d,e): 조인 순서를 명시적으로 지정하는 힌트로, d 테이블을 선행 테이블로 지정한다.
use_hash(e) : 해시 조인을 사용하도록 옵티마이저에게 힌트를 제공한다. e 테이블과 관련된 조인에서 해시 조인을 선호할 수 있다.
full(d) : d 테이블에 대해 전체 테이블 스캔(full scan)을 수행하도록 한다.
full(e) : e 테이블에 대해 전체 테이블 스캔(full scan)을 수행하도록 한다.
parallel(d 2) : d 테이블을 병렬 처리하여 2개의 프로세스로 처리하도록 한다.
parallel(e 2) : e 테이블을 병렬 처리(파렐렐 실행)하여 2개의 프로세스로 처리하도록 한다.
pq_distribute(e, broadcast, none) : 병렬 쿼리 실행 중에 e 테이블을 사용하여 파티션된 조인을 수행할 때, e 테이블의 데이터를 브로드캐스트(broadcast)하여 다른 테이블에 병합(join)하는 방법을 선택한다.
- pq_distribute(e,broadcast,none) 힌트는 e 테이블을 기준으로 조인을 수행할 때, e 테이블의 데이터를 브로드캐스트하여 전송하고, d 테이블과 조인할 때 사용하는 방법이다.
- e 테이블이 상대적으로 작고, d 테이블이 크거나 복잡한 경우에 유리할 수 있다.
'DBMS > PERFORMANCE' 카테고리의 다른 글
INDEX TUNNING (0) | 2024.07.08 |
---|---|
데이터 정합성 for update (0) | 2024.07.03 |
B-tree index structure (0) | 2024.07.03 |
ROWNUM - COUNT STOPKEY (0) | 2024.04.19 |
Sort Merge JOIN (0) | 2024.01.28 |