将新数据库的大小调整为预测的最大大小

将新数据库的大小调整为预测的最大大小

目前我有一个大约 2 GB 的 SQL Server 数据库。我知道明年它将增长到最大约 10 GB。硬盘空间根本不是问题。

现在将数据文件大小调整为 20Gb,然后对硬盘进行碎片整理,有什么缺点吗?

我是否也应该将日志文件的大小调整为 1Gb?调整到非常大,这样就不会出现碎片。

对于这个问题,我想避免数据文件在磁盘本身上变得碎片化,但我不想对性能产生负面影响。

答案1

如果您可以预测 MDF 和 LDF 尺寸,那就去做吧。

除了分区对齐和 64k 簇大小的格式(根据 TomTom 的回答),还要记住,要对表进行碎片整理(索引维护),MDF 中需要有大约 1.2 倍于该表大小的可用空间。因此,对于 6GB 的表,MDF 上需要大约 7.5GB 的可用空间。这是 MDF 和 LDF 意外增长的常见原因。

答案2

我总是将数据库的大小调整到一个合理的大小。

但更重要的是正确分区,尤其是使用 RAID 单元时。确保您的分区也对齐。并使用 64gb 节点大小的自定义 NTFS 格式。

答案3

碎片存在于两个层面:SQL 和 OS。仅当文件在碎片驱动器上预先确定大小后,才会发生 OS 碎片。如果您根据最大需求确定文件大小并禁用自动增长,则除非您手动将一些数据移动到新创建的数据文件中,否则磁盘不会出现碎片。

无论如何您都应该使用 dbcc showcontig 检查 SQL 碎片。

所以,对于您的问题,答案是肯定的:最佳做法是根据不断增长的需求指定大小。这样,SQL 就不会在空间分配上浪费时间,同时还能使 SQL 数据字节在磁盘上保持连续的顺序。

相关内容