若要获得最佳的 tempdb 性能,我们建议在生产环境中对 tempdb 进行如下配置:

  • 将 tempdb 的恢复模式设置为 SIMPLE。此模式自动回收日志空间以保持较小的空间要求。
    有关详细信息,请参阅
    如何查看或更改数据库的恢复模式 (SQL Server Management Studio)
  • 使 tempdb 文件的大小可以根据需要自动增大。这可以使文件的大小增大到磁盘变满为止。
    优化 tempdb 性能注意:
    如果生产环境不允许自动增长操作过程中可能出现的应用程序超时,则应为预期的工作负荷预分配空间。
  • 将文件增量设置为合理的大小以避免 tempdb 数据库文件的增量过小。如果文件的增量与写入 tempdb 的数据量相比过小,则 tempdb 可能需要不断扩大。这将影响性能。建议为 tempdb 文件设置 FILEGROWTH 增量时遵循以下通用原则。
    tempdb 文件大小 FILEGROWTH 增量

    0 至 100 MB

    10 MB

    100 至 200 MB

    20 MB

    200 MB 或更多

    10%*

    * 您可能必须基于 tempdb 文件所在的 I/O 子系统的速度调整此百分比。为了避免潜在的闩锁超时,我们建议将自动增长操作限制在大约两分钟之内。例如,如果 I/O 子系统以每秒 50 MB 的速度初始化文件,则无论 tempdb 文件的大小如何,FILEGROWTH 增量都应设置为最大值 6 GB。如果可能,请使用实例数据库文件初始化来提高自动增长操作的性能。
  • 通过将文件大小设置为足够容纳环境中典型工作负荷的值来预分配所有 tempdb 文件的空间。这可以避免 tempdb 因扩展得过于频繁而影响性能。tempdb 数据库应设置为自动增长,但是在出现意外情况时此设置将用于增加磁盘空间。
  • 根据需要创建足够多的文件以使磁盘宽度最大化。使用多个文件可以减少 tempdb 存储争用并获得更大的可伸缩性。但是,请勿创建过多的文件,因为此操作可能降低性能并增加管理开销。作为通用原则,为服务器中的每一个 CPU 创建一个数据文件(用于解释任何关联掩码设置),然后根据需要上下调整文件的数量。请注意,双核心 CPU 将被视为两个 CPU。
  • 使每个数据文件的大小相同,这样可以优化比例填充的性能。
  • 将 tempdb 数据库放置在快速 I/O 子系统中。如果有许多直接连接的磁盘,则请使用磁盘条带化。
  • 将 tempdb 数据库放置在用户数据库使用的磁盘以外的磁盘中。

相关文章: