- 사용자의 세션이 하나 붙으면 한 개의 프로세스로 1:1로 붙어서 처리함

- SQL이 느린데.. 더 이상 튜닝을 할 여지가 없는 경우 parallel을 사용하는 방법이 있음

- 하나의 SQL 실행을 위해서 여러개의 프로세스를 띄어서 하나의 작업을 나누어서 처리해서 빠르게 함

- 여러 프로세스 결과 취합을 위해 Query Coordinator라는 게 있음 (QC)

- 여러 프로세스가 처리한 내용을 QC에 보내서 최종 결과를 반환함

 

- 쓰는 방법 : select /*+ parallel(4) */ count(*) from emplyee;

   → 4개의 프로세스를 띄어서 해당 SQL을 처리함

 

- DML 병렬처리도 가능함 : enable_parallel_dml 을 hint에 추가 필요

 

- 병렬처리는 작업은 빨리지는데, 자원을 많이 사용함

- 여러개 띄워서 동시 수행해서 cpu, memory를 더 많이 사용

- OLTP같은 온라인 프로그램에 parallel을 쓰면 안됨

- 여러 사람이 쓰는 온라인 프로그램에 parallel이 쓰면 더 많은 자원을 사용해서 시스템이 느려짐 (cpu, memory과다 사용)

- 새벽에 도는 일부 배치 프로그램, DW에만 사용

- CTAS SQL에 parallel을 넣으면, CTAS로 생성된 테이블의 degree속성에 parallel 값이 들어감

   → parallel hint를 안줘도 parallel로 수행됨

 

* degree : table의 병렬 처리방식을 지정