首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Oracle12c中的批量更新

Oracle12c中的批量更新
EN

Stack Overflow用户
提问于 2017-02-07 13:50:39
回答 1查看 234关注 0票数 0

我有这样一种情况,想要更新一个有1.5亿条记录的表中的一列(所有行)。

通过更新和删除先前的表来创建复制表是最好的方法,但是没有可用的磁盘空间来容纳复制表。那么如何在更短的时间内执行更新呢?分区在表中。我正在使用oracle 12c

EN

回答 1

Stack Overflow用户

发布于 2017-02-07 14:21:02

最干净的方法不是更新表,而是创建一个包含已更新行的新列的新表。例如,假设我需要用某个值的最大值更新一个名为old_value的列,而不是更新old_table列:

代码语言:javascript
复制
create new_table as select foo, bar, max(old_value) from old_table; 
drop table old_table; 
rename new_table as old_table. 

如果您需要更快的速度,您可以使用带nologging的并行查询来执行此创建,从而生成非常少的重做,并且不会生成撤消日志。更多细节请点击此处查看:https://asktom.oracle.com/pls/asktom/f?p=100:11:0::NO::P11_QUESTION_ID:6407993912330

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/42082647

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档