我有一个客户端服务器,该实例上有大约 15 个数据库,数据总量约为 100 GB。其中一个数据库用于 sysaid 应用程序。他的临时数据库文件是一个 mdf 一个 ndf,当然还有一个 ldf。mdf 与其他 mdf 位于同一驱动器上,如果是 ldf 文件也是如此。
当我设置自动增长属性时,我知道我应该将其保持为不受限制的增长,但是当我需要在自动增长 % 或 MB 之间进行选择时,该选择什么?我怎么知道要配置什么号码?
提前致谢!
我有一个客户端服务器,该实例上有大约 15 个数据库,数据总量约为 100 GB。其中一个数据库用于 sysaid 应用程序。他的临时数据库文件是一个 mdf 一个 ndf,当然还有一个 ldf。mdf 与其他 mdf 位于同一驱动器上,如果是 ldf 文件也是如此。
当我设置自动增长属性时,我知道我应该将其保持为不受限制的增长,但是当我需要在自动增长 % 或 MB 之间进行选择时,该选择什么?我怎么知道要配置什么号码?
提前致谢!
对我来说,最好的做法是在一开始就将文件大小调整到足够大,以适应您期望的增长。
让我们使用一些简单的数字。假设您有一个已分配给 tempdb 的 100 GB 驱动器(或 100 GB 的某个共享驱动器)。您的实例有 4 个 tempdb 文件,您决定将它们最初设置为 100 MB,然后一次增长 10 MB。最初,该 100 GB 驱动器或切片如下所示(显然不是按比例缩放):
当您的系统使用 tempdb 资源时,每个 tempdb 文件将增长 10 MB 到 10 MB。经过几次成长:
请注意,每个增长事件虽然可能很快,但会强制所有连接等待。这在未启用即时文件初始化时更为明显,并且如果文件配置为一起增长(在某些版本中需要跟踪标志,但这是正确的做法,因为您不希望任何单个文件比其他人大)。
当您到达驱动器的尽头时,所有 4 个文件将无法同时增长。这是一个业务连续性事件。当 tempdb 无法在此处增长时,活动将停止:
现在,如果您已经走到了这一步,您需要承认您需要更改使用 tempdb 的方式,或者 100 GB 是不够的,您需要分配更多空间。但我认为最好从这里开始并为您的 tempdb 初始数据文件大小配置此大小:
好吧,从技术上讲,我会将它们的大小设置为每个 20 GB,自动增长 500 MB。这使您仍然可以在填充 100GB 切片之前得到很好的警告,但同时无需为所有这些增量文件增长付费。
毕竟,如果 tempdb 将增长以填充该空间,那么您就不能将它用于其他任何事情。
没有神奇的数字(传统上默认值对于实际使用来说过于保守,但现在越来越好)。您的自动增长设置将基于磁盘的性能特征以及您期望增长的频率。如果您有 SSD 或类似设备,并启用了 IFI,则大小可能与您在到达切片末尾之前想要发出的警告量更相关。如果您有旋转驱动器、机械驱动器和/或未启用 IFI,您可能需要测试各种设置并查看以不同数量增长文件所需的时间满足您对系统上所有事务的容忍度等待。
您不应始终将自动增长设置为无限制。如果出现问题,您不想填满磁盘。而且您需要提醒您某些事情没有按您的预期进行。如果事情按预期进行,请选择一个您认为不需要的大数字。
创造和成长需要时间。如果您从 20GB 开始,与从 10GB 开始并增加 10GB 一次相比,总时间会减少。
选择一个适合您正常需求的起始号码。您可以从小处着手,看看它在正常操作中快速增长到多大。
10GB 的固定数量需要 9 次增长才能达到 100GB。如果你加倍(100%)将是 4 次增长达到 160GB。我通常选择 10-40%。
当你成长时你会得到一些碎片,但这并不是一个很大的因素,除非你成长很多(比如 20+)。
如果您有更多物理驱动器,则通常最好将其放在另一个驱动器上以平衡流量。TempDB 几乎不需要冗余。