Database design 保留大型数据集的最佳策略是什么?

Database design 保留大型数据集的最佳策略是什么?,database-design,dataset,Database Design,Dataset,我正在领导一个项目,我们将记录度量数据。我想把这些数据保留几年。但是,我也希望主表中不会出现数据膨胀的情况,这些数据虽然对于长期趋势分析是必要的,但对于短期报告来说是不必要的 处理这种情况的最佳策略是什么?只需将旧数据归档到另一个表?或者通过数据本身的某种整合(然后将其存储到另一个表)来“汇总”?或者完全是别的什么 附加信息:我们正在使用SQL Server 2005。这两个选项中的任何一个都很好,但这实际上取决于问题域。对于现金余额或统计数据之类的东西,我认为汇总记录并合并它们是最好的方法,然

我正在领导一个项目,我们将记录度量数据。我想把这些数据保留几年。但是,我也希望主表中不会出现数据膨胀的情况,这些数据虽然对于长期趋势分析是必要的,但对于短期报告来说是不必要的

处理这种情况的最佳策略是什么?只需将旧数据归档到另一个表?或者通过数据本身的某种整合(然后将其存储到另一个表)来“汇总”?或者完全是别的什么


附加信息:我们正在使用SQL Server 2005。

这两个选项中的任何一个都很好,但这实际上取决于问题域。对于现金余额或统计数据之类的东西,我认为汇总记录并合并它们是最好的方法,然后您可以将汇总记录移动到一个并行归档表中,以这样的方式键入它们,以便在必要时可以“展开”。这样可以保持主数据表的干净和快速,但允许保留额外的数据以供审核或其他用途。关键问题是,如何实施“汇总”过程。自动地,通过触发器或服务器端进程,或通过应用程序级别的用户干预?

我们在我的工作中使用这两种方法,但稍有不同,我们将所有销售数据保留在主表中30天,然后在夜间(夜间作业的一部分)将当天的销售汇总到摘要中(今天销售的x个产品的n个数量等)出于报告原因,在单独的表格中,超过30天的销售额被归档到不同的数据库中,然后每年(我们在纳税年度)启动一个新的归档数据库。不完全完美,但

通过这种方式,我们可以快速获取摘要数据,将所有当前销售数据保存在手边,并为详细的归档数据提供无限的空间。我们确实尝试将所有数据保存在一个数据库中(在不同的表中),但数据库(interbase)的文件大小会增长得太大,从而会拖累系统


我们唯一真正的问题是访问跨多个数据库的详细数据,因为连接和断开连接的速度很慢,而且必须用代码而不是sql进行分析如果您使用的是sql server 2005,这可能是一个很好的使用方法。

@Jason-我不认为将数据保存在纯文本文件中可以让您轻松地对数据进行长期趋势分析


@Jason—我想我的观点是,如果业务人员需要对数据进行任何形式的特别分析(即趋势分析),那么将数据汇总或归档到文本文件并不能解决任何问题。当然,在许多语言中编写代码来使用文本文件是很容易的,但是这个问题已经解决了。此外,我认为,如果设置和维护得当,今天的RDBMS都非常耐用。如果他们不是,你为什么要在一家公司的基础上经营一家公司(更不用说将数据归档到它了)?我不认为归档到纯文本文件有什么意义,因为有人声称文本文件的耐久性优于数据库。

根据预算等约束条件,这听起来像是数据仓库应用程序的完美选择。这通常会引入一个用作数据仓库的新服务器。SQL Server 2005支持许多这种开箱即用的活动,此外,您还可以利用其他SQL Server服务(如Analysis services、Reporting services)为用户提供附加价值。(见附件)