六狼论坛

 找回密码
 立即注册

QQ登录

只需一步,快速开始

新浪微博账号登陆

只需一步,快速开始

搜索
查看: 313|回复: 0

oracle需要显式结束事务

[复制链接]

升级  43.33%

31

主题

31

主题

31

主题

秀才

Rank: 2

积分
115
 楼主| 发表于 2013-1-30 02:10:38 | 显示全部楼层 |阅读模式
oracle不需要显式的开始事务,事务会在修改数据的第一条语句处开始,但是oracle必须显示结束事务。这个和informix不一样,在informix数据库中,如果不显式声明事务的话,则每条修改的语句都是单独的事务,并马上自动提交。

这是两个数据库在锁和事务实现的机制不一样,在informix中锁是一种很重要的资源,所以事务最好尽快结束;而在oracle中锁的开销很小,甚至是“没有” 开销,所以oracle中系统认为事务应该可以很长。

如果忘记结束事务,不同的环境下会产生不同的缺省行为:如果正常地退出SQL*Plus会话,而没有提交或回滚事务,SQL*Plus就会认为你希望提交前面做的工作,并为你完成提交。另一方面,如果你只是退出一个Pro*C程序,就会发生一个隐式的回滚。
您需要登录后才可以回帖 登录 | 立即注册 新浪微博账号登陆

本版积分规则

快速回复 返回顶部 返回列表