gpt4 book ai didi

oracle - 通过删除旧行自动强制执行最大数据库表大小

转载 作者:行者123 更新时间:2023-12-02 08:06:14 25 4
gpt4 key购买 nike

我有一个 Oracle 表,其中包含应用程序的事件日志消息。我们不希望该表增长失控并占用太多空间,因此我们希望将其可以包含的行数设置为某个大数字(例如一百万)。

所以我们想告诉Oracle,当表变得太大时,它应该删除最旧的行,为新行腾出空间。

有什么办法可以做到这一点吗?我想我们可以使用触发器或使用存储过程进行所有插入来完成此操作,但是有没有更简单的方法?

编辑:几个答案提出了涉及分区的解决方案。我们目前没有对该表进行分区,尽管我们有能力在必要时这样做。然而,从研究这个问题来看,即使我们对表进行分区,我们仍然需要某种预定的作业来删除旧分区等。因此,我们决定放弃分区,转而使用计划作业每天一次检查行数并根据需要删除旧行。

谢谢大家的帮助。

最佳答案

取决于您对更简单的定义......

我的偏见是安排一项定期运行(例如每晚)的作业,以便删除最旧的行。如果您预计可以在一天内生成一百万个事件日志,您可能希望作业更频繁地运行,但对于大多数人来说,每晚通常就足够了。这样做的优点是异步,这样您就不会在每次执行插入操作时计算一百万行来确定是否需要清除某些数据,从而产生开销。另一方面,它确实可能需要一些管理来设置该作业。

关于oracle - 通过删除旧行自动强制执行最大数据库表大小,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/201185/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com