MSSQL Server 2008标准版存档大型800GB表

时间:2016-10-06 05:58:14

标签: sql-server sql-server-2008 ssis

我有一张表,自2011年以来每天都有数百万条记录被插入。仅该表的数据大小就超过了800GB。对我来说,只有最近3个月的数据被频繁查询,而对于较旧的数据查询需要很少进行,并且可以在离线模式下完成。

问题1:该表有一个日期列,我希望在3个月之前将所有数据归档到文件中,以便我可以在另一个存储上移动它们。那么什么是满足要求的最佳方法,我不想在备份mssql服务器上保留数据。

一个。创建SSIS包以将历史数据转储到csv中,并按月或日期名称压缩文件。需要时,SSIS包可以读取文件并加载到数据库中。这项工作将每天或每周安排。 B.写一些JAVA或python代码来完成同样的工作。 C.还有其他选择吗?

问题2:一次只执行一个日期的查询。查询此表时会与其他一些元表联系在一起。那么我应该在表中添加分区以提高查询性能吗?

1 个答案:

答案 0 :(得分:0)

我可能会做的事情:

  • 将要存档的数据移动到同一服务器上的单独数据库。使用SSIS包或存储过程。
  • 重命名原始表格,假设您不想破坏任何依赖关系,并希望能够立即使用存档数据。
  • 创建一个名称与原始表格完全相同的视图,从重命名的表格中选择所有数据
  • 当需要存档数据时,请更改视图以合并所有存档数据,如下所示:

ALTER VIEW [OriginalTableName] AS
SELECT * FROM ActiveDate
UNION ALL
SELECT * FROM ArchiveDB..ArchivedData