Oracle-Oracle里删除表的部分分区,导致全局索引失效,怎么解决?

发布于 2017-01-20 02:28:13 字数 144 浏览 1195 评论 2

Oracle里删除表的部分分区,导致全局索引失效,这个全局索引是个自增id,不能没有。

由于每天都要把过期的数据删除,delete又太慢,所以我用了删除分区的方法(分区是按时间间隔分区的)。

这个问题怎么解决?有木有更好的删除过期数据的方法?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

想挽留 2017-10-26 22:46:32

最后,在删除分区的语句后面,添加了update indexes,比delete再删除还是要快的,问题解决了。

归属感 2017-02-04 08:19:23

删除分区选择在系统空闲或者相对空闲的时间进行,在删除完分区后,立即对失效的索引进行重建。

在www.eygle.com上看到这方面的解决方案:
如果GLOBAL INDEX是最重要的,就应该先DELETE 数据再DROP PARTITION。
在下面情况下,手工删除数据的代价比DROP PARTITION要小
- 如果要删除的数据只占整个TABLE的小部分
- 在TABLE中有很多的GLOBAL INDEX。
在下面情况下,手工删除数据的代价比DROP PARTITION要大
- 如果要删除的数据占整个TABLE的绝大部分
- 在TABLE中没有很多的GLOBAL INDEX。

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文