第二十一讲--事务概述
2016-03-22 12:13
197 查看
从开发者的角度来讲,oracle的事务很简单,就是commit和rollback。
事务关系到数据的一致性。
事务的基本概念:
一组DML语句:insert、update、delete
Commit;
Rollback;
Savepoint<savepoint name>;
Rollback to[savepoint] <savepoint name>;
数据库正常运行期间一个会话登录上来,这个会话有自己的SID,会话开始了一个事务,事务由10条DML组成,但是只执行了5条,产生的8个脏buffer,其中6个脏buffer对应的日志写到了磁盘上,有2个日志在log buffer里面,此时数据库崩溃,然后重启。重启之后oracle开始跑日志,跑日志的时候6个脏buffer被构造出来了,但是有一个原则:一个会话死掉以后不能再生,那么会话当初执行的没有完成的事务不可能再完成了,这时候事务只能被回滚。6个脏buffer修改的数据自动被oracle rollback。对未完成的事务oracle进行的是回滚。
对oracle来讲,一个事务要么全成功要么全失败。
执行DDL语句时,oracle自动把DDL语句前的事务提交。正常或者异常退出以后,事务被隐含的提交了。
为了避免隐式的提交和回滚,我们做的所有DML语句都要显式的提交和回滚。
事务关系到数据的一致性。
事务的基本概念:
一组DML语句:insert、update、delete
Commit;
Rollback;
Savepoint<savepoint name>;
Rollback to[savepoint] <savepoint name>;
数据库正常运行期间一个会话登录上来,这个会话有自己的SID,会话开始了一个事务,事务由10条DML组成,但是只执行了5条,产生的8个脏buffer,其中6个脏buffer对应的日志写到了磁盘上,有2个日志在log buffer里面,此时数据库崩溃,然后重启。重启之后oracle开始跑日志,跑日志的时候6个脏buffer被构造出来了,但是有一个原则:一个会话死掉以后不能再生,那么会话当初执行的没有完成的事务不可能再完成了,这时候事务只能被回滚。6个脏buffer修改的数据自动被oracle rollback。对未完成的事务oracle进行的是回滚。
对oracle来讲,一个事务要么全成功要么全失败。
执行DDL语句时,oracle自动把DDL语句前的事务提交。正常或者异常退出以后,事务被隐含的提交了。
为了避免隐式的提交和回滚,我们做的所有DML语句都要显式的提交和回滚。
相关文章推荐
- POJ3420Quad Tiling
- 哈密顿图
- 第二十一讲--事务概述
- 第二十讲--系统改变号(SCN)详解
- Visual Studio 2015 OpenMP: (1) 初涉江湖
- HDFS读文件过程分析:读取文件的Block数据
- Hibernate 联合主键的设置
- opencv目标跟踪:三帧差分法
- 关于坚持
- SQLServer替换第一个匹配的字符串方法
- 人工智能
- LeetCode OJ --- Regular Expression Matching
- iOS 百度推送
- Leetcode #19. Remove Nth Node From End of List 移除倒数第N个链表节点 解题小节
- C# 流总结
- APP界面设计之页面布局的22条基本原则
- 控制 .net框架的RichTextBox的粘贴事件(为了只粘贴纯文本),怎么办?
- ZOJ1100Mondriaan's Dream
- latex自定义命令
- C# 堆栈(Stack)