Oracle的并发控制(事务)
2014-12-15 12:28
253 查看
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;
2、事务的操作
①事务提交 SQL>Commit; ②事务回滚 SQL>Rollback; ③保存点 SQL>Savepoint 保存点名; Rollback To 保存点名;
注意:I.已经提交的事务不能进行回滚。 II.回滚到某个保留点的事务将撤销保留点之后的所有修改。
④Set Transaction 语句:用来设置事务的各种属性。
属性有①指定事务的隔离层 ②规定回滚事务时所使用的存储空间 ③命名事务
3、结束事务
以下情况Oracle认为一个事务结束:
①Commit
②Rollback
③执行DDL语句(Create、Drop、Alter),事务被提交
④断开与Oracle的连接,事务被提交
⑤用户进程意外被终止,事务被回滚
简单说就是提交和回滚两种结束方式,只是提交和回滚的情况不同。
4、隔离级别
通过一些现象,可以反应隔离级别效果。这些现象有:①更新丢失 ②脏读 ③非重复读 ④幻象
脏读 | 非重复读 | 幻象 | |
读未提交 | 会 | 会 | 会 |
读提交(默认) | 不会 | 会 | 会 |
重复读 | 不会 | 不会 | 会 |
序列化 | 不会 | 不会 | 不会 |
在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;
相关文章推荐
- Oracle并发控制与事务隔离
- Oracle 起步日记(9)——事务与并发控制
- JDBC Oracle事务隔离(并发控制)
- 数据库 事务并发控制
- J2EE事务并发控制策略总结
- Hibernate的事务和并发控制
- LINQ体验(10)——LINQ to SQL语句之开放式并发控制和事务
- DB2和 Oracle的并发控制(锁)的比较
- 事务与并发控制
- Hibernate事务和并发控制
- J2EE事务并发控制策略总结
- J2EE事务并发控制策略总结(3)(转载)
- Hibernate的事务和并发控制
- java hibernate事务并发控制
- LINQ : 在LINQ TO SQL中使用事务和控制并发
- LINQ to SQL语句(13)之开放式并发控制和事务
- DB2和 Oracle的并发控制(锁)的比较
- DB2和 Oracle的并发控制(锁)比较
- LINQ体验(10)——LINQ to SQL语句之开放式并发控制和事务
- LINQ to SQL语句之开放式并发控制和事务