我有一张表,自2011年以来每天都有数百万条记录被插入。仅该表的数据大小就超过了800GB。对我来说,只有最近3个月的数据被频繁查询,而对于较旧的数据查询需要很少进行,并且可以在离线模式下完成。
问题1:该表有一个日期列,我希望在3个月之前将所有数据归档到文件中,以便我可以在另一个存储上移动它们。那么什么是满足要求的最佳方法,我不想在备份mssql服务器上保留数据。
一个。创建SSIS包以将历史数据转储到csv中,并按月或日期名称压缩文件。需要时,SSIS包可以读取文件并加载到数据库中。这项工作将每天或每周安排。 B.写一些JAVA或python代码来完成同样的工作。 C.还有其他选择吗?
问题2:一次只执行一个日期的查询。查询此表时会与其他一些元表联系在一起。那么我应该在表中添加分区以提高查询性能吗?
答案 0 :(得分:0)
我可能会做的事情:
ALTER VIEW [OriginalTableName] AS
SELECT * FROM ActiveDate
UNION ALL
SELECT * FROM ArchiveDB..ArchivedData