批量更新数据相比直接更新数据有什么优点?

dajun666 2018-10-17 10:57:48
更新一张拥有100万数据的数据表,为什么要写存储过程每一万(或者10万)条数据commit一次而不是直接整张表更新?整张表更新的效率是否更高?
...全文
365 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
dajun666 2018-10-18
  • 打赏
  • 举报
回复
引用 1 楼 wmxcn2000 的回复:
1、锁的机制,一次性更新 10000 行,当你把这 10000 行提交以后,其他会话就可能操作这些行了,如果是一次性的,其他会话要等待这里全部结束。 2、UNDO表空间的占用,如果 100行在 UNDO中存放不下,则这个更新会报一个 01555 的错误。 3、回滚,中途失败了,要回滚所有的数据行,可能用的时间很长,如果1000 行一次提交,已提交的不受影响。
明白,谢谢
卖水果的net 2018-10-17
  • 打赏
  • 举报
回复
1、锁的机制,一次性更新 10000 行,当你把这 10000 行提交以后,其他会话就可能操作这些行了,如果是一次性的,其他会话要等待这里全部结束。 2、UNDO表空间的占用,如果 100行在 UNDO中存放不下,则这个更新会报一个 01555 的错误。 3、回滚,中途失败了,要回滚所有的数据行,可能用的时间很长,如果1000 行一次提交,已提交的不受影响。

17,082

社区成员

发帖
与我相关
我的任务
社区描述
Oracle开发相关技术讨论
社区管理员
  • 开发
  • Lucifer三思而后行
  • 卖水果的net
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧