Oracle的并发控制(事务)
1、事务的ACID特性:Atomicity 原子性、Consistency 一致性、Isolation 隔离性、Durability 持久性。
2、事务的操作
①事务提交 SQL>Commit; ②事务回滚 SQL>Rollback; ③保存点 SQL>Savepoint 保存点名; Rollback To 保存点名;
注意:I.已经提交的事务不能进行回滚。 II.回滚到某个保留点的事务将撤销保留点之后的所有修改。
④Set Transaction 语句:用来设置事务的各种属性。
属性有①指定事务的隔离层 ②规定回滚事务时所使用的存储空间 ③命名事务
3、结束事务
以下情况Oracle认为一个事务结束:
①Commit
②Rollback
③执行DDL语句(Create、Drop、Alter),事务被提交
④断开与Oracle的连接,事务被提交
⑤用户进程意外被终止,事务被回滚
简单说就是提交和回滚两种结束方式,只是提交和回滚的情况不同。
4、隔离级别
通过一些现象,可以反应隔离级别效果。这些现象有:①更新丢失 ②脏读 ③非重复读 ④幻象
脏读 | 非重复读 | 幻象 | |
读未提交 | 会 | 会 | 会 |
读提交(默认) | 不会 | 会 | 会 |
重复读 | 不会 | 不会 | 会 |
序列化 | 不会 | 不会 | 不会 |
5、设置隔离级别
在Oracle中,在事务开始之前可以通过以下方式设置一个事务的隔离级别:
SET TRANSATION ISOLATION LEVEL READ COMMITTED;(Oracle默认的事务隔离级别)
SET TRANSATION ISOLATION LEVEL SERIALIZABLE;
SET TRANSATION READ ONLY;
可以在单独的会话中设置整个会话的隔离级别:
ALTER SESSION SET ISOLATION_LEBEL SERIALIZABLE;
ALTER SESSION SET ISOLATION_LEBEL READ COMMITED;
ALTER SESSION SET ISOLATION_LEBEL READ ONLY;