오라클 PARALLEL 힌트
오라클 PARALLEL 힌트
/*+ PARALLEL(table_name, degree) */
1) 효과
DISK I/O가 많은 테이블에 DISK I/O 작업을 분산시켜 작업 속도를 향상 시켜준다.
SORTING 작업이 많은 경우 SORTING 작업을 분산시켜 작업 속도를 향상시킬 수 있다.
2) 효과를 볼 수 있는 시스템 환경
클러스터드 시스템
하나의 시스템에 여러개의 CPU가 있는 경우
테이블의 datafile이 분산이 되어 있는 경우
CPU 사용률이 여유가 있는 경우
3) 사용 전 확인 사항
system의 CPU CORE 갯수
table이 여러 disk에 걸쳐 있는 경우 datafile의 갯수
degree는 병렬도를 나타낸다. 병렬도란 CPU의 코어보다 작은 병렬을 처리 할 수 있는 수를 나타낸다.
4) 원리
parallel 힌트는 파티션된 테이블에서 효과적이다.
parallel 힌트는 쿼리 분석 작업, DISK I/O작업, SORTING을 분리해서 사용할 수 있을 때 효과적이다.
하지만 파티션 되지 않고, 하나의 데이터 파일에만 데이터가 쓰여져 있다면 DISK I/O작업은 하나의 프로세스가 처리해야 한다.
이럴 경우 순차적으로 처리하는 방식과의 차이는 나지 않는다.
5) 병렬 실행 여부 확인
병렬 실행 중에 아래 쿼리로 병렬 처리 여부를 확인할 수 있다.
select * from v$pq_sysstat where statistics = 'Servers Busy';
실행 계획에서 보면 Object Code에 값이 입력되어 있다.
6) 기타
- 여러 테이블에 대해 parallel hint를 사용하려면 아래와 같이 나열한다.
/*+ parallel(detp,8,emp,8) */
'DB > Oracle' 카테고리의 다른 글
DB I/O WAIT 대기 확인 및 조치 방법 (0) | 2016.06.04 |
---|---|
SQL Number Type (0) | 2016.06.04 |
index fast full scan (0) | 2016.06.04 |
DB 히트율 (0) | 2016.06.04 |
탭 문자 제거 (0) | 2016.06.04 |