如何有效地存档大(多GB)SQL Server数据库的旧部分?

时间:2008-08-28 09:31:09

标签: sql sql-server

现在我正在研究一种解决方案,将旧数据从大型工作数据库存档到具有相同模式的单独存档数据库。我使用SQL脚本和SQL Server管理对象(SMO)从用C#编写的.Net可执行文件中移动数据。

归档数据仍应可访问,甚至(偶尔)可更改,我们只是希望它能够使工作数据库保持精简和快速。

支持大量数据并管理表之间的关系已被证明是一项相当大的挑战。

我想知道是否有更好的方法可以使用SQL Server归档数据。

有什么想法吗?

3 个答案:

答案 0 :(得分:1)

我认为如果您仍然希望/需要可访问数据,那么可以选择对某些最大或最常用的表进行分区。

答案 1 :(得分:1)

是的,使用表和索引分区与文件组。

只有当你想要从结果中获得最后一点速度时,你甚至不必更改select语句。

另一个选项可以是两个服务器之间的工作负载平衡以及它们之间的双向复制。

答案 2 :(得分:0)

我们处于类似情况。出于监管原因,我们无法在一段时间内删除数据,但是我们的许多表格变得非常庞大且笨拙且实际上大部分超过一个月的数据都可以在几乎没有日常问题的情况下被删除。

我们目前以编程方式修剪表格,使用自定义.NET / shell组合应用程序使用BCP备份文件,这些文件可以压缩并留在网络共享的路上。这不是特别容易获得,但它更节省空间。 (由于我们需要保留某些历史日期,而不是能够截断某个大小或某些范围内的关键字段,这很复杂。)

我们正在寻找替代方案,但令人惊讶的是,这次讨论的最佳实践方式并不多!