如何创建作业以将MDF文件拆分为多个ndf文件

时间:2014-07-07 09:41:53

标签: sql sql-server

我是一名开发人员并以某种方式管理自己参与其中。 有许多数据库,每个数据库只有一个mdf,到目前为止还没有ndf。

现在这些数据库正在增长,我必须创建一个工作,找出哪个MDf文件正在接近或已超过100 gig的大小 然后我必须将MDF拆分为更多的ndf文件,以分担负载并提高性能。

我被建议在需要时(mdf超出限制)在同一个主文件组中创建新的ndf文件,然后将mdf缩小到强制将数据移动到新的ndf。然后重建索引并完成任务。

经过一些研究后,我相信通过将新文件添加到新文件组并将索引从大表移动到新的ndf文件,我可以更好地做到这一点。 没有。数据库中的大型表很少,大约80%的数据驻留在这些表中。

现在的问题是,有很多数据库,必须通过在后台运行的作业来完成。它应该适用于所有数据库。

你能告诉我,我该怎么做? 这意味着一旦第一次完成拆分,就会创建新的文件组和ndf 并将索引移至ndf文件。下次mdf接近限制时应该怎么做?

或者这种方法有什么缺点,我应该坚持在同一个文件组中创建一个新的ndf,并在达到限制时清空mdf?

如果有人能建议我如何动态地做这件事会很棒吗? 非常感谢你提前!

1 个答案:

答案 0 :(得分:0)

这个link提供了一些关于如何获得所需结果的详细信息。您可以使用sp_MSforeachdb命令对其进行扩展,以在每个数据库上执行脚本。然而,这在这一点上变得非常危险。

您可能想要考虑的一件事是调查预期的增长和其他增长,并计划在接下来的6到12个月内适应这种情况,并且每年只需手动执行一次或两次。如果无法做到这一点,那么就有一个中间点,您只能为大表的数据移动编写脚本。