Oracle事务管理
Oracle事务管理
一个事务包含一个或多个SQL语句,是逻辑管理的工作单元(原子单元)。
一个事务开始于第一次执行的SQL语句,结束于Commit 或 Rollback 或 DDL语句。
注意:其中Commit, Rollback是显示的提交事务,而DDL语句是隐式的提交事务的。DDL语句的操作是
没有办法回滚的。
##########################
eg:
SQL> create table a ( i int);
表已创建。
SQL> insert into a values(1);
已创建 1 行。
SQL> create table b ( i int);
表已创建。
SQL> rollback;
回退已完成。
SQL> select * from a;
I
----------
1
#############################
在执行create table b 的时候事务就已经提交了。
事务结束的地方有:
1>. 执行Commit, Rollback, 没有使用savepoint.
2>. 执行DDL操作如:create , drop, rename, alter
3>. 断开与Oracle的连接,事务将自动提交。
4>. 用户进程异常终止,当前事务回滚。
注意:应用程序与Oracle连接的情况,在应用程序终止前必须显示的提交(Commit)或回滚(Rollback)。
Commit操作Oracle做了:
1>. 与UNDO表空间关联的内部事务表记录该事务已经提交,产生唯一的系统交易号(SCN)保存到该表
中。
2>. LGWR进程将SGA中的重做日志写入redo log文件,当然也要写SCN到重做日志文件。
3>. Oracle释放锁定表中的行。
4>. Oracle设置该事务完成。
注意:Commit操作前的改变数据(保存在SGA)不会马上写到数据文件中。这样做的目的也是为了数据
库更高效。从开发人员的角度想想也是这样的,这样可以减少很多小事务的多次写磁盘的。
Oracle 10.2中与事务有关的:
commit work write immediate wait; --是Oracle默认的设置。
alter system set commit_write = nowait; --改变系统提交方式
alter session set commit_write = nowait; --改变会话提交方式
##############################
提交一个事务 eg:
SQL> commit work;
提交完成。
SQL> show autocommit;
autocommit OFF
SQL> create table t0(testcol number);
表已创建。
SQL> insert into t0 values(1);
已创建 1 行。
SQL> commit;
提交完成。
SQL> select * from t0;
TESTCOL
----------
1
SQL> insert into t0 values(2);
已创建 1 行。
SQL> commit work;
提交完成。
SQL> select * from t0;
TESTCOL
----------
1
2
####################################
commit comment eg:
see more : http://www.psoug.org/reference/transaction.html
Oracle事务管理相关推荐
- oracle事务管理器,全能数据库盘问分析器中的事务管理在oracle中的应用.doc
全能数据库盘问分析器中的事务管理在oracle中的应用.doc 还剩 6页未读, 继续阅读 下载文档到电脑,马上远离加班熬夜! 亲,喜欢就下载吧,价低环保! 内容要点: 76<DB 查询分析器 ...
- Oracle PL/SQL 程序设计读书笔记 - 第14章 DML和事务管理
Oracle PL/SQL 程序设计读书笔记 - 第14章 DML和事务管理 Oracle PL/SQL 程序设计读书笔记 - 第14章 DML和事务管理 ACID原则:即一个事务具有原子性.一致性. ...
- 什么是事务的传播_这么漂亮的Spring事务管理详解,你不来看看?
事务概念回顾 什么是事务? 事务是逻辑上的一组操作,要么都执行,要么都不执行. 事物的特性(ACID): 原子性: 事务是最小的执行单位,不允许分割.事务的原子性确保动作要么全部完成,要么完全不起作用 ...
- Spring 事务管理高级应用难点剖析
Spring 事务管理高级应用难点剖析: 第 1 部分 http://www.ibm.com/developerworks/cn/java/j-lo-spring-ts1/index.html htt ...
- java hibernate详细_Java事务管理学习之Hibernate详细介绍
hibernate是jdbc轻量级的封装,本身不具备事务管理的能力,在事物管理层面,一般是委托于底层的jdbc和jta来完成调度的.下面这篇文章主要给大家介绍了Java事务管理学习之Hibernate ...
- AOP基本概念、AOP底层实现原理、AOP经典应用【事务管理、异常日志处理、方法审计】...
1 什么是AOP AOP为Aspect Oriented Programming的缩写,意为:面向切面编程,通过预编译方式和运行期动态代理实现程序功能的统一维护的一种技术.AOP是OOP的延续,是软件 ...
- Oracle用户管理学习总结
Oracle 用户管理 一.用户的概念 用户,即user,通俗的讲就是访问oracle数据库的"人".在oracle中,可以对用户的各种安全参数进行控制,以维护数据库的安全性,这些 ...
- Spring的事务管理1
事务的回顾: 事务:逻辑上的一组操作,组成这组事务的各个单元,要么全部成功,要么全部失败 事务的特性:ACID 原子性(Atomicity):事务不可分割 一致性(Consistency):事务执行前 ...
- Spring 事务管理高级应用难点剖析--转
第 1 部分 http://www.ibm.com/search/csass/search/?q=%E4%BA%8B%E5%8A%A1&sn=dw&lang=zh&cc=CN& ...
最新文章
- VirtualBox虚拟机导出导入实践
- linux二进制文件构建mysql_MySQL安装系列:使用通用二进制文件在Unix/Linux安装
- AI:一个20年程序猿的学习资料大全—BAT等面试资料/NECCS大赛资料/一二级建造师/网络编程爬虫等/公务员——只有你不想要的,没有你找不到的
- 服务器被入侵了?反手溯源出入侵者画像【网络安全】
- python读取ini文件编码格式_Python读取txt(.ini)文件BOM问题
- shell调用各种sqlplus用法
- 对几种二叉树的简单理解
- java-回调机制详解
- 前端学习(2829):block标签的使用
- yum删除mysql数据库_MySQL数据库之Centos中彻底删除Mysql(rpm、yum安装的情况)
- c语言通讯录感想,C语言通讯录实例分享
- 初学QTP系列视频教程
- 日语学习|如何快速有效地记忆日语五十音图?
- 视沃科技-大牛直播SDK
- vptr初始化语义学
- html手写笔记照片,html手写代码学习笔记
- 《Network Science》:一本关于网络科学的书
- 安装fcitx五笔拼音
- 重磅开源:阿里妈妈技术质量开源了线上测试MagicOTP和性能测试平台ACP
- matlab epics,基于EPICS/MATLAB图像处理的光束位置测量系统