Oracle

[Oracle] 오라클 parallel 힌트 (병렬처리)

안드선생 2023. 1. 11. 16:39
반응형

오늘은 오라클 DML을 병렬처리 하는 기술인 Parallel 힌트에 대해 알아보려고 합니다.

 

parallel 힌트란?

하나의 DML을 여러개의 쓰레드에 분산하여 병렬처리하는 기술이다.

하나의 코어로 처리하던 SQL을 여러개의 코어로 처리하기 때문에

시간은 훨씬 단축된다는 장점이 있어 대용량의 데이터 처리시 사용된다.

 

하지만, 그만큼 시스템 자원을 많이 쓰기 때문에 주의해서 사용해야 한다.

 

사용방법

1. 사용 전 해당 Session에 대해 Parallel DML을 Enable 시키는 명령어 수행

alter session enable parallel dml;

 

2. 다음과 같이 DML 수행

select /*+ parallel(A,4) */ from tmp A;

위의 쿼리처럼,

/*+ parallel(테이블, 코어수) */ 힌트를 쿼리문 사이에 넣어주면 된다.

이 때, 코어수를 생략하면 기본값으로 설정된다.

 

다음과 같이도 사용할 수 있다.

delete /*+ parallel(tmp) */ from tmp where v = 'abc';

디폴트 값은, 시스템마다 다르게 설정되어 있으므로 따로 확인을 해야한다.

 

insert와 update 문도 똑같이 수행할 수 있다.

insert /*+ parallel(tmp, 8) */ into tmp
select /*+ parallel(emp, 8) */ * from emp;

update /*+ parallel(tmp, 16) */ tmp set v = 'abc';

 

주의사항

update, delete, merge는 non-partitioned table에서는 parallel 로 수행되지 않는다.

 

 

지금까지, 오라클의 Parallel(병렬처리) 힌트에 대해 알아보았습니다.

 

긴 글 읽어주셔서 감사합니다!

반응형