加入收藏 | 设为首页 | 会员中心 | 我要投稿 核心网 (https://www.hxwgxz.com/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 站长百科 > 正文

如何批量更新oracle pl / sql中的大表以避免耗尽undospace?

发布时间:2021-01-02 05:17:50 所属栏目:站长百科 来源:网络整理
导读:我有一张非常大的桌子(5毫米的记录).我正在尝试使用随机字母数字对表格的VARCHAR2列进行模糊处理.我的过程在较小的数据集上成功执行,但它最终会在我无法控制的设置的远程数据库上使用,所以我想批量执行UPDATE语句以避免耗尽undospace. 我可以启用某种选项,还

我有一张非常大的桌子(5毫米的记录).我正在尝试使用随机字母数字对表格的VARCHAR2列进行模糊处理.我的过程在较小的数据集上成功执行,但它最终会在我无法控制的设置的远程数据库上使用,所以我想批量执行UPDATE语句以避免耗尽undospace.

我可以启用某种选项,还是以块的形式进行更新的标准方法?

我将补充说,没有任何混淆的记录没有任何区别特征,所以我想在循环中使用rownum是行不通的(我认为).

解决方法

如果要更新表中的每一行,最好选择Create Table As Select,然后删除/截断原始表并使用新数据重新附加.如果您有分区选项,则可以将新表创建为具有单个分区的表,并将其与EXCHANGE PARTITION交换.

插入需要少量撤消,带有nologging的直接路径插入(/ APPEND /提示)也不会产生太多重做.

对于任何一种机制,可能会有旧的值的“法医”证据(例如,由于行移动而在撤消或“可用”空间中保留分配给表).

(编辑:核心网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    热点阅读