首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >Oracle -截断全局临时表

Oracle -截断全局临时表
EN

Stack Overflow用户
提问于 2010-04-29 07:05:56
回答 2查看 7K关注 0票数 3

我在迭代中处理大量数据,每次迭代处理大约10-50,000条记录。由于有如此多的记录,我首先将它们插入到一个全局临时表中,然后对其进行处理。通常,每次迭代需要5-10秒。

在每次迭代后截断全局临时表,以便每次迭代都可以从空表开始,这样做是否明智?大约有5000次迭代。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2010-04-29 08:49:21

不是的!全局临时表的整体思想是,当您不再需要数据时,它会自动消失。

例如,如果希望数据在提交时消失,则应该在最初创建表时使用ON COMMIT DELETE ROWS选项。

这样,您就不需要执行截断操作--只需提交,表就会变得新鲜、空闲,可以重用。

票数 6
EN

Stack Overflow用户

发布于 2010-04-29 07:45:26

每次运行50000条记录进行5,000次迭代?如果你需要做这么多的处理,你当然可以优化你的处理逻辑来更有效地运行。与截断表相比,这将为您提供更快的速度。

但是,如果您处理完了临时表中的数据,则应该截断它,或者只是确保使用该表的下一个进程不会再次重新处理相同的数据。

例如,有一个'processed‘标志,所以新的进程不使用现有的数据。或者在不再需要时删除数据。

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

https://stackoverflow.com/questions/2733709

复制
相关文章

相似问题

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