开发者社区> 游客tmj4hgt7bfvas> 正文
阿里云
为了无法计算的价值
打开APP
阿里云APP内打开

关于Oracle存储过程中是否需要写commit的问题

简介: 关于Oracle存储过程中是否需要写commit的问题
+关注继续查看
是否需要在存储过程中写commit主要要依据需求:


(1) 如果是不需要在存储过程中进行提交,而是由调用程序负责提交或者回滚,那么不需要在存储过程中commit或者rollback.毕竟spring框架已经可以帮助我们自动实现事务的控制;


(2) 如果不想由调用程序负责提交或者回滚,那么就应该在存储过程中进行commit或rollback;


另外,如果是纯后台数据库开发,一定要写.只是写的时机同样是分为两种,一种是写在过程里面;另一种是写在调用存储过程之后.

而之所以要写commit的原因是,Oracle的默认事务级别是READ COMMITED;默认情况下,Oracle是不会自动提交的,需要手动提交才ok.


注意:


并不是每个INSERT/UPDATE语句后都需要COMMIT一次.因为数据量很大的话,这样效率会很差.而每次执行完十几万条INSERT/UPDATE后做一次COMMIT,也是不可取的;

比较习惯用的方法是:每做完5000条或者1w条,或者2w条,做一次COMMIT,效率一定比“每个INSERT/UPDATE语句后都COMMIT一次”快。但是具体5000条快,还是1w条快,还是2w条快,需要根据业务需求确定一个合适的量。


所以,如果使用游标的话,可以通过设置变量的方法,来实现每处理一定的行数后手动commit提交事务.


参考链接:


(1) 存储过程里使用Commit的火候

(2) ORACLE数据库事务隔离级别

版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。

相关文章
Oracle BIEE (Business Intelligence) 11g 11.1.1.6.0 学习(2)RPD资料档案库创建
BI创建(数据)分析、仪表盘、报表前,都需要对数据进行建模,在oracle biee里称为创建“资料档案库”-该文件后缀为RPD,所以一般也称为创建RPD文件。 步骤: 1、从windows开始菜单里,找到"BI 管理",如下图: 2、点击工具栏第一个按钮“创建”一个(脱机/离线的)RPD文件,这里我们命名为Scott.
1097 0
131
文章
0
问答
文章排行榜
最热
最新
相关电子书
更多
低代码开发师(初级)实战教程
立即下载
阿里巴巴DevOps 最佳实践手册
立即下载
冬季实战营第三期:MySQL数据库进阶实战
立即下载