将历史数据保存在数据库中

本文关键字:数据库 存在 保存 历史数据 | 更新日期: 2023-09-27 18:05:57

将过去的数据保存在数据库中的最佳实践是什么?例如,假设我们在薪资解决方案中有像AttendanceTrans, SalaryTrans这样的事务表。所以每个月我们都要向这些表中插入成百上千条新记录。因此,所有过去和当前的数据都在同一个表中。

另一种方法是保留AttendanceHistorySalaryHistory表。因此,在每个周期(月)结束时,我们将数据复制到各自的History表后清空Trans表。

在考虑诸如性能、报告生成的便利性、编码和维护的便利性等因素时,最佳解决方案是什么?

注释: RDBMS是SQL Server 2008,编程环境是。net (c#)

将历史数据保存在数据库中

一般情况下,应该将所有数据保存在同一个表中。SQL Server在处理大量数据方面非常出色,如果所有这些都在一个地方,它将使您的生活(报告,查询,编码,维护)变得容易得多。如果你的数据被适当地索引了,那么你每个月就会有成千上万的新记录。

在我看来,sql server的最佳解决方案是CDC(更改数据捕获)。它使用起来非常简单。您可以通过更改清理作业的时间表来更改历史数据量。我认为这是性能的最佳方式,因为CDC从事务日志中获取更改(它不是表上的触发器),但是您需要为数据库使用完全恢复模型。