我继承了一个系统,其中以前的 DBA 将 7 个数据文件添加到 PRIMARY 文件组(8MB 初始大小)并将 AUTOGROW 选项保留为 8MB。我现在拥有的是一组八个文件,每个文件的大小约为 3-4GB,这些文件在两年内一直在缓慢增长。我想以最快的方式删除文件碎片。
以下是我想出的选项:
或者
操作系统级别的“磁盘碎片整理”仍然不是一个选项吗?
我不知道哪个选项是最好的,或者它是否有效。
此外,该数据库正在被镜像和复制,因此在重建它方面的工作量最少。
谢谢你的帮助。
现在,在空间增加如此之多之后,物理文件肯定会碎片化,并且会受益于文件级别的一些碎片整理。
我不知道你的情况,但任何服务器都应该足够快来提供单个 32 GB 数据文件。只有当所有这些文件都位于不同的物理磁盘上时,我才会看到好处,否则我认为不需要这样的麻烦。
在这种情况下,我会选择解决方案 1,不过,我会创建比当前大小更大的文件,其空间至少足以满足明年的需求,并且具有更大的大小以供自动增长。
我不认为操作系统级别的碎片整理可用于实时数据库文件。我一直认为您需要将其分离才能对文件进行碎片整理,但似乎来自 Serverfault 答案的人能够在数据库在线时对数据库文件进行碎片整理。
您的两个选项都应该能够工作,通过使用单个碎片整理文件使您的数据库更快,但是,对于解决方案 2,我认为不需要具有相同数量的文件,您可以使用单个文件创建一个数据库数据文件并使用 SSIS/bcp 移动新数据库表中的所有内容。
我之前会测试,但我认为第一个解决方案会更快。
归档时间: |
|
查看次数: |
2610 次 |
最近记录: |