配置 tempdb 以减少争用 - AWS 规范性指导

本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。

配置 tempdb 以减少争用

我们建议您使用多个大小相等且增长因子相等的数据文件配置 tempdb。

在经常使用 tempdb 的繁忙数据库服务器上,当服务器遇到沉重负载时,您可能会注意到严重阻塞。您可能会注意到,任务正在等待指向 tempdb 中页面的资源。这些页面可能是页面可用空间 (PFS) 和共享全球分配地图 (SGM) 页面,格式为 2:x:x(例如 2:1:1 或 2:1:2)。

要提高 tempdb 的并发性,可以增加 tempdb 中的数据文件数量,以最大限度提高磁盘带宽并减少分配结构中的争用。下面是一些指导方针:

  • 如果逻辑处理器的数量等于或小于 8:使用相同数量的数据文件和逻辑处理器。

  • 如果逻辑处理器的数量大于 8:使用 8 个数据文件。

如果争用仍然存在,则以 4 的倍数增加数据文件数,直到争用得到纠正,最多为服务器上的逻辑处理器数量。这将有助于避免 tempdb 中出现争用 SGAM。如果您使用的是 SQL Server 2014 或更早版本,则还需要启用跟踪标志 1118。此标志强制在统一范围而不是混合区上分配页面,这样可以最大限度地减少 SGAM 页面上的扫描并减少争用。

从 SQL Server 2016 (13.x) 开始,此行为由 ALTER DATABASEAUTOGROW_SINGLE_FILEAUTOGROW_ALL_FILES 选项控制。例如:

alter database <database name> MODIFY FILEGROUP [PRIMARY] AUTOGROW_ALL_FILES

有关这些选项设置的更多信息,请参阅 Microsoft SQL Server 文档