oracle批次处理数据_Oracle使用游标进行分批次更新数据的6种方式及速度比对

1.情景展示

一共有22w条数据, 需要将a表的主键更新至b表的指定字段,如何快速完成更新?

2.解决方案

声明:

解决方案不只一种,该文章只介绍快速游标法及代码实现;

两张表的id和id_card字段都建立了索引。

方式一:使用隐式游标(更新一次提交1次)

?

执行时间:

方式二:使用隐式游标(更新1000次提交1次)(推荐使用)

?

执行时间:

方式三:显式游标+分批次更新(1000条1提交)

?

执行时间:

10000条1提交,执行时间:

方式四:显式游标+数组(更新一次提交一次)(使用bulk collect)

?

执行时间:

方式五: 显式游标+数组(1000条提交一次)(使用bulk collect)

?

执行时间:

方式六:推荐使用(使用bulk collect和forall)

?

执行时间:

从oracle8开始,oracle为pl/sql引入了两个新的数据操纵语言(dml)语句:bulk collect和forall。

这两个语句在pl/sql内部进行一种数组处理;bulk collect提供对数据的高速检索,forall可大大改进insert、update和delete操作的性能。

oracle数据库使用这些语句大大减少了pl/sql与sql语句执行引擎的环境切换次数,从而使其性能有了显著提高。

小结:

数据量小的时候可以用方式二,数据量大的时候推荐使用方式六;

一定要建索引。

以上就是oracle使用游标进行分批次更新的6种方式及速度比对的详细内容,更多关于oracle 游标的资料请关注服务器之家其它相关文章!

原文链接:https://www.cnblogs.com/Marydon20170307/p/10097243.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值