PARALLEL Hint
/* PARALLEL(table_name, degree) */
1) 정의
항상 데이터가 균일하게 분산되었다고 가정
최신 통계정보 수집이 필수
옵티마이저의 실행계획을 개발자가 부여하는 실행 계획을 바꿔서 실행할 때 사용하는 방법
2) 효과
Disk I/O 가 많은 테이블에 Disk I/O 작업을 분산시켜 속도를 향상시켜 준다.
Sorting 작업이 많은 경우 Sorting 작업을 분산시켜 작업 속도를 향상 시킬 수 있다.
3) 실행되는 sql에만 명령질의 옵션
select /*+ hint */
update /*+ parallel(테이블명, 범위)*/ set 설정값 where 조건절
delete /*+ parallel(테이블명, 범위)*/ 테이블명
insert /*+ parallel(테이블명, 범위)*/ into 테이블명 valuse(값1, 값2...)
4) 병렬옵션
병렬 질의 (parallel query) : 대용량 테이블을 참조한다면 서버 프로세스는 테이블의 처음부터 마지막까지 순차적으로 읽어야하는데에 성능문제를 가져온다, 이 경우 병렬 질의 옵션을 사용하면 여러개의 병렬 프로세스들은 읽어야 할 테이블 데이터를 균등하게 배분하여 각각 읽기 작업을 동시 수행하게 되므로, 전체를 순차적으로 읽는 것보다 빠르게 데이터를 읽을 수 있다. 또한 병렬 프로세스들이 각각의 CPU에서 작업이 진행될 수 있게 해줌으로써 CPU간에 로드밸런싱을 유지할 수 있다는 장점을 가지고 있다
병렬 인덱스 (parallel index creation)
병렬 데이터 로딩 (parallel data load)
병렬 복구 (parallel recovery)
병렬 옵션이 설치되어 있는 지 확인
SQL > select * from v$option;
where parameter like '%Parallel%';
cf) http://androiddev.tistory.com/entry/오라클-PARALLEL-힌트
-----------------------------------------------------------------------------
SELECT /* + PARALLEL(A 8) */ count(*)
FROM cube_instance A
WHERE A.CREATION_date BETWEEN ....
'Database' 카테고리의 다른 글
TABLESPACE USAGE (0) | 2014.08.14 |
---|---|
SQL 튜닝 가이드 (0) | 2014.08.04 |
Index full scan, table full scan (0) | 2014.08.04 |
Database 용어 (0) | 2012.10.11 |
Oracle DB(User 생성) & 시작/정지 (0) | 2012.10.04 |