将过去的数据保存在数据库中的最佳做法是什么?例如,假设我们在工资核算解决方案中有AttendanceTrans
,SalaryTrans
等交易表。因此,每个月我们都必须向这些表中插入数百或数千条新记录。所以过去和现在的所有数据都在同一张表中。
另一种方法是保留AttendanceHistory
和SalaryHistory
表。因此,在将每个句点(月)结束后,我们会在将数据复制到相应的历史记录表后清空Trans表。
在考虑性能,报告生成简易性,编码和维护简易性等因素时,最佳解决方案是什么?
注意:RDBMS是SQL Server 2008,编程环境是.NET(C#)
答案 0 :(得分:3)
通常,您应该将所有数据保存在同一个表中。 SQL Server非常适合处理大量数据,如果它们集中在一个地方,它将使您的生活变得更加轻松(报告,查询,编码和维护)。如果您的数据被正确编入索引,那么您每月可以获得数千条新记录。
答案 1 :(得分:1)
在我看来,sql server中的最佳解决方案是CDC(Change Data Capture)。它使用起来非常简单。您可以通过更改明确作业的计划来更改历史数据量。 我认为这是性能的最佳方式,因为CDC从事务日志中获取更改(它不是表上的触发器),但您需要为数据库使用完全恢复模型。