![如何在 SQL Server 上拆分非常大的数据库](https://linux22.com/image/516052/%E5%A6%82%E4%BD%95%E5%9C%A8%20SQL%20Server%20%E4%B8%8A%E6%8B%86%E5%88%86%E9%9D%9E%E5%B8%B8%E5%A4%A7%E7%9A%84%E6%95%B0%E6%8D%AE%E5%BA%93.png)
我有一个 90 GB 的 SQL Server 数据库,我想让它更易于管理。它存储了 2009 年至 2010 年 50 多只不同股票的股票数据,每只股票都是一个单独的表。有些表有数亿行,而其他表只有几百万行。
我想要做的是以某种方式拆分数据库,这样我就不会有一个 90 GB 的数据库文件。
我想要的是能够以某种方式神奇地拆分所有表,以便我可以备份 2009 年的数据,而不必在每次备份整个数据库时都将其包含在备份中,但是,我希望每次执行查询时都包含 2009 年的数据。
对数据库进行分区是可行的方法吗?它能帮我解决上述问题吗,还是我需要其他解决方案?我研究过分区,但不确定这是否能解决我所有的问题。我找不到任何东西告诉我它是否会迁移预先存在的数据,或者它是否只适用于新插入的数据。
如能得到任何帮助或指点我将非常感激。
提前致谢,
肯
答案1
Kimberly Tripp 发布了一系列精彩的网络广播,回答了类似这样的问题。我认为与其针对您的具体情况提出一般性建议,不如看看这网络广播。我相信它将为您提供指导分割和老化根据您的情况做出正确的决定。
答案2
分区应该可以解决拆分表的问题,同时仍然可以在一个查询中访问所有数据,但如果你没有企业版,您仍然可以使用分区视图
为了解决将表拆分为多个表后的备份问题,请将表移动到单独的文件组,然后可以分别备份未更改的文件组和获取新数据的文件组。
有什么理由将每只股票放在单独的表中吗?(因为现在您有 50 个表需要管理分区)如果股票放在一个表中,那么您可以按月对该表进行分区。