Oracle11g Oracle 11g中的选择性数据归档和清除

Oracle11g Oracle 11g中的选择性数据归档和清除,oracle11g,archive,purge,Oracle11g,Archive,Purge,在我的应用程序中,我们使用Oracle 11g。我们的表格中包含大量的财务信息,这些信息每天都在增长。我们的数据分为每月数据(基本上是每月汇总)和每日数据(基本上是每日持有量)。我们的清除要求类似于“对于每日数据,对于给定的月份,保留当前和前一天的数据,并清除其余数据”。对于月末数据,我们保留当月最后一个工作日和最后一个工作日的数据 我们面临的挑战是,这些表的大小很大,并且在过去几年中由于问题很少而没有被清除。这降低了应用程序的性能,因此我们希望恢复清除表。但是,在少数地区,由于法律限制,我们希

在我的应用程序中,我们使用Oracle 11g。我们的表格中包含大量的财务信息,这些信息每天都在增长。我们的数据分为每月数据(基本上是每月汇总)和每日数据(基本上是每日持有量)。我们的清除要求类似于“对于每日数据,对于给定的月份,保留当前和前一天的数据,并清除其余数据”。对于月末数据,我们保留当月最后一个工作日和最后一个工作日的数据

我们面临的挑战是,这些表的大小很大,并且在过去几年中由于问题很少而没有被清除。这降低了应用程序的性能,因此我们希望恢复清除表。但是,在少数地区,由于法律限制,我们希望归档数据,而不是清除数据


我想分区在这种情况下可能不起作用,因为我们的清除要求非常具体。我们的清除程序目前通过PLSQL程序以编程方式完成。在这种情况下,高效执行清除/归档的最佳方法是什么?每周清理一次就足够了。

为什么分区不起作用?我不认为具体的需求会在那里产生问题。当然,这将涉及相当大的应用程序重新设计,这将需要大量的分析。此外,分区是企业版许可证之外的额外成本选项。但我没有看到分区会有问题的任何技术原因。你能确切地解释一下你认为分区有问题的地方吗?我认为分区可以作为一个附加功能来使用,以提高性能,但首先你必须让删除和归档工作正常进行。您可以使用PL/SQL实现这一点,但即使是SQL也可以。没有什么可以阻止您执行删除操作,只有以某种方式存档的记录被删除。尽管可以,但不需要PL/SQL游标。存档只是有点棘手,因为你必须确保没有数据丢失,但这应该不会那么困难。@JustinCave:谢谢你的反馈。我不太了解oracle分区。据我所知,我们可以对一个表进行分区,比如说基于年份等。在这里,我们可以说2012年的所有数据都进入分区a,2013年进入分区B,依此类推。在我的例子中,今天的数据在接下来的两天内就会过时。那么在这种情况下如何进行分区呢?@tvCa:PLSQL或SQL将用于清除数据。这就是我们现在在一些不需要存档的地区所做的。然而,通过SQL脚本,清除需要很长时间,因为我们有多个包含大量数据的表。有没有比PLSQL更有效的清除方法?@Venky-似乎日常分区可以解决您的问题。当然,您必须编写一些代码来确定要清除哪些分区,但是删除分区基本上是即时的。当然,如果将所有表都设计成分区表,那么可能会出现什么问题(如果有的话),这还没有开始进行分析。