2014. 8. 4. 12:04

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
Posted by 아도니우스