본문 바로가기

프로그래밍/oracle

oracle - [Hint]병렬처리(NOPARALLEL)

반응형

[Hint]병렬처리(NOPARALLEL)


이 힌트는 Query가 병렬로 실행되는 것을 막아 주며 10g에서는 NO_PARALLEL로 사용됩니다.


원래 EMP TABLE의 병렬도는 1이 기본값 인데…


만약 아래와 같이 EMP 테이블의 degree를 2로 주고 Query를 실행 한다면…


SQL>alter table emp parallel(degree 2);


SQL>select * from emp;


Execution Plan

--------------------------------------------------------------------

SELECT STATEMENT Optimizer=CHOOSE

   TABLE ACCESS (FULL) OF ‘EMP’


:Q188888


1 PARALLEL_TO_SERIAL SELECT /*+ Q188888 NO_EXPAND ROWID(A1) */ ……


해당 쿼리를 병렬 처리 하게 됩니다.


이 경우 병렬처리를 막기 위해서는 NOPARALLEL 힌트를 사용하면 되는데……


SQL>select /*+ NOPARALLEL(emp) */* from emp;


Execution Plan

--------------------------------------------------------------------

SELECT STATEMENT Optimizer=CHOOSE

   TABLE ACCESS (FULL) OF ‘EMP’

 

 

 

 


반응형