Sql server 需要拆分SQL Server数据库以进行归档和报告的方法

Sql server 需要拆分SQL Server数据库以进行归档和报告的方法,sql-server,database,merge,replication,archive,Sql Server,Database,Merge,Replication,Archive,我需要一些帮助。我有一个750 gb的生产数据库。(是的,是的,这个问题可能解决得更快,但它比我的工资级别高)数据库包含了几年来的数据 目前的要求是 将较旧的数据移动(而不仅仅是复制)到单独的归档数据库,以提高生产性能。即,这些行将从生产中永久删除。这将定期进行——我建议每月滚动一次。我现在不知道归档数据库是否在另一台服务器上——可能在,也可能不在 调整报告环境,使其包含归档和生产数据库的联合。问题是,由生产数据组成的部分必须每天至少更新一次。此环境可能不在生产服务器上(但我可能错了!) 出于这

我需要一些帮助。我有一个750 gb的生产数据库。(是的,是的,这个问题可能解决得更快,但它比我的工资级别高)数据库包含了几年来的数据

目前的要求是

  • 将较旧的数据移动(而不仅仅是复制)到单独的归档数据库,以提高生产性能。即,这些行将从生产中永久删除。这将定期进行——我建议每月滚动一次。我现在不知道归档数据库是否在另一台服务器上——可能在,也可能不在
  • 调整报告环境,使其包含归档和生产数据库的联合。问题是,由生产数据组成的部分必须每天至少更新一次。此环境可能不在生产服务器上(但我可能错了!)
  • 出于这个问题的目的,让我们假设模式在任何地方都是相同的:)所有表都有一个主键-一个INT NOT NULL标识(1,1)。我们确实能够通过SAN制作生产的快照拷贝。必须保留主键

    到目前为止考虑了什么

    • 我们已经考虑过复制和日志传送,但这两者都不足以使报告数据库成为生产数据库和归档数据库的联合体
    • 我们考虑过分区视图,但主键是标识,因此不起作用:(
    • 我们已经考虑过分区,但我不赞成每天进行需要数百Gig I/O的ETL(我们不能用这种方法利用SAN快照)
    • 最后,我正在考虑一种定制的应用程序方法,它将模拟SQL Server复制所完成的一些功能,但功能要比包装盒中的功能更具体。我确实希望避免做一些非常定制的事情

    我在这里遗漏了什么?这不是一个独特的需求。

    正如@adriamn所问的,我有同样的问题

    您有一个包含大量行的大型表,这些行无法按您的目的进行缩放,例如,由于锁定、索引等原因

    由于历史数据似乎是只读的,因此您可以轻松地将它们剪切到不同的表中,例如按月,这无关紧要。关键是您可以将这些只读数据移动到不同的服务器,使用只读副本对其进行缩放,等等


    重要的是,在运行时将数据划分到不同的表中,不存在单点故障(或争用)从数据库架构的角度来看。

    您想解决什么问题?例如,为什么750GB的数据库是一个问题?性能开始恶化,例如。客户端应用程序每周插入数百万行。它已经以这种方式运行了几年。我们无法限制插入行的数量-这只是t的本质商业。@codenoire我对此有一些想法,但它们涉及我们的商业技术,因此不适合stackoverflow回答。如果您想了解更多信息,可以给我发电子邮件,我的电子邮件在我的个人资料中。我想您现在一定已经想出了一些解决方案。如果您能在这里添加一个描述您的想法的答案,那将是非常棒的你终于做到了,它对你的帮助有多大。这是一种方法。但问题是,在正在建立的报告环境中,我们有一些固定的报告,然后还有一些临时报告功能。如果我们开始按日期范围划分表,这将加剧用户群已经存在的挑战。