oracle几百万条数据怎么update

oracle几百万条数据怎么update,第1张

首先要区分具体情况,虽然表里有几百万几千万的数据量,但是update是同时update这几百万条的数据呢?还是只更新其中某几条? 更新的数据量不同,解决方案自然也就有差异。同时update几百万数据,这个sql的性能影响在于数据库会做回滚段,以便异常时rollback。由于数据量大,性能就浪费在回滚段上了。 所以有2个方案供参考:

1 update时 ,禁用回滚段的生成,跟你前面说的nologing应该是一个意思

2 分批更新,比如每更新10W条数据,就执行一次commit,这样效率也会比原来的要快。

看具体怎么更新了,一般语法是:

update 表名 set 字段='xxx' where 条件;

commit;

这个所有数据库基本一致,都是这个语法

update table_B set column_3=100 where column_4<>5 and exists (select 1 from table_A where column_1=2)

可以用以下SQL试试,如果有一对多的情况在bname=aname后面加个 and rownum=1:

upddate table_a a set alname =(select '前缀字符串'||blname from table_b b

where bid=aid and bname=aname)

update sysuser set isclosed = '1'

where longonname in(

select distinct slongonname from sysuser s,humres h where sisclosed='0'

and hid=sobjid and hhrstatus='4028804c16acfbc00116ccba13802936

)

什么叫批量更新一列记录? 是要一次性更新多条记录么,如果是这样的话只能逐条去些UPDATE语句。不过可以把需要更新的所有数据全部存到excel表格里,然后用CONCATENATE函数去写SQL语句

以上就是关于oracle几百万条数据怎么update全部的内容,包括:oracle几百万条数据怎么update、oracle 如何实现对单个表批量更新、oracle批量更新的问题等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/sjk/9670316.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-30
下一篇 2023-04-30

发表评论

登录后才能评论

评论列表(0条)

保存