【发布时间】:2015-08-26 11:07:24
【问题描述】:
与this one 基本相同的问题,但由于它已有 6 年历史,我认为可能值得检查是否有任何添加到 Oracle DB 的功能。
基本上,我们要做的是确保我们在 Oracle DB 中的存档表不会变得太大,因此希望设置要保留的最大行数,并将最旧的行删除为新行被插入。
我找不到比定期清理 cron 作业更简单的方法,但我认为值得询问是否有其他人知道在数据库本身内做这件事的好方法.
编辑以回复 Florin Ghita 的评论:每个事务插入一个行。我们正在考虑将数据库限制为大约 5 或 1000 万行,每天插入大约 700 000 行(因此总共保留大约一周的数据),这使得平均每秒 8 行(尽管峰值次肯定会看到这个数字至少翻倍)。
【问题讨论】:
-
以什么方式插入行?每笔交易一份,一份声明一份,多份声明,等等?表中有多少行,每秒插入多少行? (仅供参考,Oracle 在过去 6 年中其核心并没有太大变化,所以问题是一样的。并发性迫使您保持 aproximate 行数)
-
我会查看 DBMS_Scheduler,而不是 cron 作业——将数据库维护代码保存在数据库中。
-
@David Aldridge:谢谢,我也去看看!