Parallel DML은 기본적으로 session에 "enable" 되어 있지 않습니다. PDML과 serial DML의 locking, transaction, disk space requirement 등의 차이에 의해 PDML mode의 "enable"이 요구됩니다.
ALTER SESSION ENABLE PARALLEL DML;
따라서 Parallel DML이 "disable"되있을 경우 parallel hint나 table/index에 degree가 설정되어 있어도 이는 무시되게 됩니다. 물론 PDML mode가 "enable"되어 있어도 parallel hint나 table/index에 대한 degree가 설정되어 있어야 PDML로 수행 가능하다.
한 Transaction은 서로 다른 table에 대해 여러 PDML이 수행될 수 있습니다. 그러나 PDML로 변경된 table에 대해 해당 transaction 내에서 serial/parallel 명령(DML or Query)으로 access를 할 수 없습니다. 즉 commit/rollback 등으로 transaction을 완료 후에야 동일 table에 대한 operation이 가능합니다.
(참조 Note 201978.1 PDML Restrictions on Parallel DML)
Oracle 9i 이후에 intra-partition parallelism 개념이 소개되었습니다.
이 개념은 partition당 한개씩만 수행되는 parallel execution server의 제한을 완화(?) 시키는 개념입니다.
(참고 Note 241376.1 What is Intra-partition parallelism )
특정 세션의 PDML의 "enable" 여부는 v$session의 PDML_STATUS, PDDL_STATUS, PQ_STATUS column으로 확인 할 수 있습니다.
SQL> SELECT SID,PDML_STATUS, PDDL_STATUS, PQ_STATUS FROM V$SESSION;
SID | PDML_STATUS | PDDL_STATUS | PQ_STATUS |
---------- | ------------ | ------------ | ------------ |
141 | DISABLED | DISABLED | DISABLED |
143 | DISABLED | ENABLED | ENABLED |
145 | DISABLED | ENABLED | ENABLED |
148 | DISABLED | ENABLED | ENABLED |
150 | DISABLED | DISABLED | DISABLED |
'Oracle > oracle' 카테고리의 다른 글
KSC5601 -> UTF8로 마이그레이션시 이슈 (0) | 2009.12.10 |
---|---|
Oracle 10g 에서 SQL-LOADER 의 성능 향상 TIP (0) | 2009.12.10 |
오라클 LMT(Locally Managed Tablespace)사용하기 (0) | 2009.12.01 |
모든 DML을 INSERT로 변경하자 (0) | 2009.07.08 |
Oracle Built-in Datatypes (0) | 2009.07.05 |