'2010/02'에 해당되는 글 1건

  1. 2010.02.18 [Oracle] HINT : Parallel Execution 1
2010. 2. 18. 14:16

<<Parallel Execution>>
 
 
/*+ NOPARALLEL(table_name) */
 
  NOPARALLEL hint를 사용하면, parallel query option을 사용하지 않도록 할 수 있다.
 
  SQL>SELECT /*+ NOPARALLEL */ *  FROM emp;
 
 
 
/*+ PARALLEL(table_name, degree) */
 
  PARALLEL hint를 사용하면 query에 포함된 table의 degree를 설정할 수 있습니다.
 
  예를 들어, 다음과 같이 hint를 적어 degree 4로 parallel query option을  실행하도록 할 수 있습니다.
  이 때 parallel이란 글자와 괄호( ’(’ )사이에 blank를 넣지 않도록 주의해야 합니다.
  
  SQL>SELECT /*+ PARALLEL(emp, 4) */   * FROM emp;
 
 
 
* DEGREE의 의미 및 결정
 
Parallel Query에서 degree란 하나의 operation 수행에 대한 server process의 개수 입니다.
이러한 degree 결정에 영향을 주는 요인들에는 다음과 같은 것들이 있습니다.
 
(1)  system의 CPU 갯수
(2)  system의 maximum process 갯수
(3)  table이 striping되어 있는 경우, 그 table이 걸쳐있는 disk의 갯수
(4)  data의 위치 (즉, memory에 cache되어 있는지, disk에 있는지)
(5)  query의 형태 (예를 들어 sorts 혹은 full table scan)
 
한 사용자만이 parallel query를 사용하는 경우, sorting이 많이 필요한
작업과 같은 CPU-bound 작업의 경우는 CPU 갯수의 1 ~ 2배의 degree가 적당하며,
sorting보다는 table scan과 같은 I/O bound 작업의 경우는 disk drive 갯수의 1 ~ 2배가 적당합니다.
 
동시에 수행되는 parallel query가 많은 경우에는 위의 각 사용자의 degree를
줄이거나 동시에 사용하는 사용자 수를 줄여야 합니다.

** 아직 먼말인지 모르겠음.. Study 대상.. 항목.
Posted by 옹니미