다른 명령
병렬 DML에 대한 제한 사항
- 병렬 DML( direct-path 포함 INSERT)에는 다음 제한 사항이 적용됩니다.
- UPDATE, MERGE및 DELETE작업 에 대한 파티션 내 병렬 처리 에서는 COMPATIBLE초기화 매개변수를 9.2 이상으로 설정해야 합니다.
- INSERT VALUES는 병렬로 실행되지 않습니다.
- 트랜잭션은 서로 다른 테이블을 수정하는 여러 병렬 DML 문을 포함할 수 있지만 병렬 DML 문이 테이블을 수정한 후에는 후속 직렬 또는 병렬 문(DML 또는 쿼리)이 해당 트랜잭션에서 동일한 테이블에 다시 액세스할 수 없습니다.
- 이 제한은 직렬 다이렉트 패스 문 뒤에도 존재합니다 INSERT. 후속 SQL 문(DML 또는 쿼리)은 해당 트랜잭션 중에 수정된 테이블에 액세스할 수 없습니다.
- 동일한 테이블에 액세스하는 쿼리는 병렬 DML 또는 다이렉트 패스 INSERT문 이전에는 허용되지만 이후에는 허용되지 않습니다.
- 동일한 트랜잭션 중에 병렬 또는 다이렉트 패스에 의해 수정된 테이블에 액세스하려고 시도하는 직렬 또는 병렬 문은 오류 메시지와 함께 거부 됩니다
- 병렬 DML 작업은 트리거가 있는 테이블에서 수행할 수 없습니다.
- 병렬 DML은 자체 참조 무결성, 계단식 삭제 및 지연된 무결성과 같은 특정 제약 조건이 있는 경우 발생할 수 없습니다. 또한 direct-path INSERT의 경우 참조 무결성이 지원되지 않습니다.
- 오브젝트 컬럼에 액세스하지 않는 경우 오브젝트 컬럼이 있는 테이블에서 병렬 DML을 수행할 수 있습니다.
- LOB 테이블이 분할된 경우 컬럼 있는 테이블 에서 병렬 DML을 수행할 수 있습니다 . 그러나 파티션 내 병렬 처리는 지원되지 않습니다.
- LOB 컬럼이 있는 분할되지 않은 테이블의 경우 LOB 열이 SecureFiles LOB로 선언되면 병렬 INSERT작업이 지원됩니다. 이러한 테이블에 대한 병렬 UPDATE, DELETE및 MERGE작업은 지원되지 않습니다.
- DML 작업이 분산 트랜잭션에 있거나 DML 또는 쿼리 작업이 리모트 개체에 있는 경우 DML 작업을 병렬로 실행할 수 없습니다.
- 클러스터링된 테이블은 지원되지 않습니다.
- Parallel UPDATE, DELETE및 MERGE작업은 임시 테이블에 대해 지원되지 않습니다.
- 테이블이 분할되지 않은 경우 비트맵 인덱스가 있는 테이블에서 병렬 DML이 지원되지 않습니다.
- 이러한 제한 사항을 위반하면 문이 경고나 오류 메시지 없이 순차적으로 실행됩니다(오류 메시지를 유발할 수 있는 트랜잭션의 동일한 테이블에 액세스하는 문에 대한 제한 제외).
- 업데이트로 인해 행이 새 분할 영역으로 이동하지 않는 경우에만 분할된 테이블의 분할 키를 새 값으로 업데이트할 수 있습니다.
- 테이블이 행 이동 절이 활성화된 상태로 정의된 경우 업데이트가 가능합니다.
- 병렬 DML의 기능 제한은 병렬 DDL 및 병렬 쿼리와 동일합니다.