由于数据库太大,我们当前遇到一些性能问题。有过去10年存储的数据,我看不出为什么必须将2年以上的数据与新数据存储在同一表中的原因。
现在,由于我在管理数据库方面没有很丰富的经验,因此我正在寻找归档旧数据的最佳方法。
信息
数据库中总共有约310'000'000条记录。
数据库在硬盘上需要250 GB。
- 服务器版本为具有兼容级别SQL Server 2005(90)的SQL Server 2008,但我们计划很快升级到SQL Server 2012
我考虑过两种可能性:
新资料库
在生产服务器上创建一个与之相似的数据库,并将所有旧数据插入新数据库中。
- 缺点:由于我们的环境中不允许使用链接服务器,因此如果需要,将很难加入旧数据
历史架构
使用与生产数据库相同的表创建新的模式fe [hist]。在新架构的这些新表中插入所有旧数据。
- 优势:易于加入,如果将来需要旧数据
- 您是否更喜欢其中一种解决方案?
- 为什么?
- 还有更好的可能性吗?
- 是否有现有工具可轻松实现此任务?
- 还有其他想法吗?
提前致谢
编辑
附加问题:
新创建的存档表是否还需要主键/外键?
还是应该只包含列但没有键/约束?