Oracle更新五百万条数据怎么提高效率

Mr_L__ 2021-04-06 10:55:20
UPDATE SWLY_OCAEXPLICIT SET ROUTE= F_Getallroutedescribebyid(PORT_SID,0);
...全文
758 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
YC老钢炮 2021-08-13
  • 打赏
  • 举报
回复

新建一张表,ctas处理吧,然后rename,这样快;前提是有应用关停的窗口。

冰思雨 2021-04-12
  • 打赏
  • 举报
回复
只使用数据库来做的话,没有什么好的办法。 如果配合应用程序来完成的话,采用多线程并发更新,可能是个比较好的选择。 因为,只使用数据库的话,大数据量的更新操作,会产生锁冲突,以及其他相关联的事务,被耽搁了。 如果配合应用程序的话,可以把五百万的数据,每一条都分成一个小事务来做,这样的话,不容易产生锁冲突,死锁等问题。其他事务也有被进行下去的机会,当然,数据层面上,由于不是一个大的事务,会不会出现数据不一致的问题,也要考虑一下。一般情况下,我们是通过配合应用程序并发更新来完成大批量的数据更新操作的。3个以上的线程就会明显快很多。
  • 打赏
  • 举报
回复
如果数据库版本>=11.2可考虑dbms_parallel_execute并行包
  • 打赏
  • 举报
回复
loop每2-5000条记录批量循环更新,别一次性。

17,086

社区成员

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

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