需要有关归档大型SQL Server表的建议

时间:2010-08-18 14:28:05

标签: sql-server database database-design

我们的SQL Server数据库(SQL Server 2008标准版,因此是R2)从存储多年的数据变得越来越大。因此,我们正在考虑将旧数据(可能超过一年)移动到存档数据库中。我们将生产数据库缩小的原因有很多原因。

这就是我打算这样做的方法(以 Stock 数据库为例)。对于Stock数据库,现在将有Stock和Stock_Archive数据库。 StockResults表将在Stock数据库中命名为StockResults_Current,在Stock_Archive中命名为StockResults_Archive。在Stock数据库中,将有一个名为StockResults的视图,它将两者联合起来。在常规时间,我们将归档我们的数据(即将其移动到Stock_Archive数据库)。这是基本的想法。

我考虑过将旧数据放在不同的文件组中来对这些表进行分区,但我希望保持主数据库的小 - 而不仅仅是一些数据文件。

有没有人尝试过类似的东西?或者有关于尝试以这种方式存档的建议?或者可以推荐更好的方法吗?

我并不太关心归档数据的性能,但我不希望读取和写入当前数据受到影响。我们的报告使用StockResults等表格。

我打算为存储大量数据的所有事务表执行此操作。

非常感谢任何建议。

2 个答案:

答案 0 :(得分:1)

听起来像一个完美的数据仓库场景。 您可以使用额外的StartDate和EndDate字段创建与现有Stock表匹配的表,以便跟踪缓慢变化的维度。 然后,您还可以考虑使用SSIS包来安排ETL。

点击此处查看链接 - Good place to start learning data warehousing?

如果您还没有,那么将一个多维数据集放在一起作为报告平台的一部分是值得的。

祝你好运!

答案 1 :(得分:0)

DataWareHouse是一个选项,但我认为您可以使用部分表来存档和拆分大数据。

您可以通过参数(例如StockDate)拆分所有数据。您可以存储每个部分单独的.mdf文件,当然如果您希望可以存储此文件的另一个驱动器。

如果您使用部分表拆分数据,当您查询“SELECT * FROM StokResults”时,您可以看到所有数据,但您知道他们正在获取绝望的文件。