【问题标题】:How to efficiently archive older parts of a big (multi-GB) SQL Server database?如何有效地归档大型(多 GB)SQL Server 数据库的旧部分?
【发布时间】:2010-09-07 02:38:48
【问题描述】:

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

存档的数据应该仍然可以访问,甚至(偶尔)可以更改,我们只是希望它不妨碍工作数据库保持精简和快速。

事实证明,处理大量数据并管理表之间的关系是一项相当大的挑战。

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

有什么想法吗?

【问题讨论】:

    标签: sql sql-server


    【解决方案1】:

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

    【讨论】:

      【解决方案2】:

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

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

      另一种选择是使用两台服务器进行工作负载平衡,并在它们之间进行双向复制。

      【讨论】:

        【解决方案3】:

        我们处于类似的情况。出于监管原因,我们无法在设定的时间段内删除数据,但是我们的许多表变得非常庞大且笨拙,实际上,可以删除一个月以上的大部分数据,而不会出现日常问题。

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

        我们正在寻找替代方案,但令人惊讶的是,在此讨论中没有太多最佳实践!

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2020-10-19
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2016-07-07
          • 1970-01-01
          相关资源
          最近更新 更多