는 COMMIT 트랜잭션을합니다. 즉, 트랜잭션은 두 COMMIT 문 (또는 ROLLBACK) 사이에서 발생하는 모든 활동 (하나 이상의 DML 문)입니다.
Oracle에서 DDL 문은 단순히 명령문이 실행되기 전에 암시 적 COMMIT이 발행되고 이후에 다시 실행되기 때문에 단순히 자체 트랜잭션입니다.
시스템 설계 관점에서 볼 때 트랜잭션은 업무 단위의 비즈니스 단위입니다. 단일 DML 문 또는 그 중 몇 개로 구성 될 수 있습니다. 중요하지 않습니다. 전체 트랜잭션 만 COMMIT해야합니다. 우리가 전체 업무 단위를 완료하지 않는 한, COMMIT를 발행하는 것은 사실상 의미가 없습니다.
이것은 중요한 개념입니다. 커밋은 잠금을 해제하지 않습니다. Oracle에서는 관심 트랜잭션 목록과 같은 래치를 릴리스합니다. 이는 오라클의 읽기 일관성 모델로 인해 영향을 미칩니다. 부적절한 커밋으로 인해 ORA-01555: SNAPSHOT TOO OLD
또는 ORA-01002: FETCH OUT OF SEQUENCE
과 같은 예외가 발생합니다. 따라서 거래가 필요할 때만 잠금 장치에 매달리는 것이 중요합니다.
출처
2012-03-02 23:47:01
APC
'truncate'는 데이터를 Rollback Tablespace에 복사하지 않고 직접 제거합니다. DDL 문입니다. – danihp
DCL을 설치해야합니까? 즉 grant + revoke – toop
Merge. 또한 업데이트를 선택하면 아무 것도 수정하지 않더라도 잠금이 적용됩니다. –