求教如何加快update的速度并最大程度减少回滚段的使用
update tmp_user_info set county_type=(select county_type from cust.cust_info@to_cust where serv_id=yhid and rownum<2);
执行了近两个小时后提示回滚段不足。
serv_id 和 yhid 上都有索引。
tmp_user_info 有40w记录,
cust.cust_info@to_cust 有2000w记录。
求教如何加快update的速度并最大程度减少回滚段的使用。
如何, update, select, from, where
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(6)
加大回滚段
pl/sql实现,分批提交
2楼正解,这么大的数据量很难用sql语句做。推荐PL/SQL可以更好的控制。
1.减小undo retain time的值
2.写个用cursor 写loop多次commit
可以先把cust.cust_info@to_cust上用到的数据在你要更新的实例上建一张临时表之后再用这条update做更新
使用pl/sql吧,可以分批提交,实现减少对回滚段的使用