본문 바로가기
컴퓨터/Oracle

[Oracle]Parallel 오라클 병렬처리

by TEATO 2014. 7. 21.
반응형

[Oracle]Parallel 오라클 병렬처리


오라클에서는 병렬처리를 지원합니다.

병렬처리란...? 보통 하나의 프로세스가 한작업을 하게되는데요

한 프로세스가 여러작업을 할때엔 시분할로 나눠서 하게됩니다.

동시처럼보이지만 동시작업이 아니죠.

이럴때 parallel을 이용하면 여러프로세스를 만들어서

동시에 작업을 할 수 있습니다.

문제점은 동시에 작업을 하게되면 테이블에 있는 데이터들이

순차적으로 메모리에 올라가지않고 뒤죽박죽 올라간다는 점인데요.

이때문에 LARGE POOL이라는 SGA영역에서 재배열을 해줍니다.

이때 LARGE POOL영역이 부족하다면 다시처음부터 작업을 해야하니 주의해주세요


 11G버전에서는 PARALLEL이 FALSE로되어있어도 사용할수있다.

(MEMORY TARGET으로 메모리관리할경우)

수동으로 메모리를 관리한다면 TRUE로 되어있어야 가능하다.


V$OPTION에 PARALLEL옵션을 확인할 수 있습니다.

ENTERPRISE버젼에서 기본적으로 TRUE로 설정되어 있습니다.


샘플 테이블을 만들었습니다.


위와같이 DEGREE를 조회해보면 DEGREE값이 나오는데요

이게 바로 PARALLEL PROCESSING할때 프로세스의 갯수입니다.

기본이 2개로 되어있죠


V$PROCESS를 조회해보시면 현재 만들어져있는 프로세스들을 볼 수 있습니다.

S001, S002이렇게 되어있는부분이 DEGREE가 2인 프로세스입니다.


위와같으 옵션으로 PARALLEL PROCESSING을해보겠습니다.


P000,P001이 생긴것을 볼 수 있습니다. 위의 작업을 수행하기위해서 2개의 프로세스가 만들어졌네요


병렬처리가 많이 쓰이는부분은 대량의 데이터를 오라클에 올릴때 많이 사용합니다.

UPDATE 같은 DML문에도 사용할 수 있습니다.

LARGE POOL 크기를 잘 고려하는것 유의해주세요


반응형

댓글