在Sql 2005中分配比需要更多的空间是否有优势?

伙计们,

我将2个数据库从杂乱的硬盘驱动器迁移到我专门购买的一个新的数据库来托pipe这两个数据库。 这些数据库的大小大致相同,并预计将同样增长。 将硬盘的一半分配给每个硬盘是否有意义(现在数据库可能有40%未使用的空间,而不是通常的5-10%)。 这将防止碎片,因为MDF文件将在连续的块? 或者这是一个坏主意? 我应该保持平常的缓冲区,让文件及时增长(操作系统可以pipe理碎片整理)。 想法?

由于数据文件增长导致的IO负载以及其不可预知的性质,提供尽可能多的可用空间比自动增长更可取。 如果数据文件在繁忙的一天中以x%自动增长,该怎么办? 预先configuration空间也将最大限度地减less碎片。

可能很难知道是否要将更多的数据库放到服务器上,并且很难知道实际数据的增长速度是否在configuration练习之前。 在驱动器上留下一些空闲空间,但是确保将缓冲空间保持在合理的pipe理范围内,同时为将来的开发留有一定的灵活性。

我曾经写过一篇博客: 使用DMV监视关键的SQL Server统计信息

我在这个博客中提供的代码可以被使用或削减,以帮助您关注数据的大小和数据库的文件大小。

我认为把它们设置为50/50并不是一个好主意,你的增长假设可能被certificate是错误的,碎片也不会太糟糕 – 无论如何,如果需要的话,你可以随时修复。

要记住的是数据库增长的文件可以是一些密集的。 我会让SQL为你自动增长,只需​​根据你的增长模式将增长设置为一个合理的百分比。 至于文件碎片,我会向您推荐Diskeeper: http : //www.diskeeper.com/business/diskeeper/帮助保持在控制之下。 Diskeeper使用他们所谓的InvisiTasking,这基本上是影子卷复制,并能够整理你的实时SQL数据库文件(Exchange)。 把两个数据库放在同一个驱动器上 – 让它们随意增长,然后放置一个像Diskeeper这样的好整理器,这样你就不用担心了。