Applies ToSQL Server 2016 Service Pack 1 SQL Server 2016 Developer - duplicate (do not use) SQL Server 2016 Enterprise - duplicate (do not use) SQL Server 2016 Enterprise Core - duplicate (do not use) SQL Server 2016 Standard - duplicate (do not use) SQL Server 2017 Enterprise on Windows SQL Server 2017 Enterprise Core on Windows SQL Server 2017 Standard on Windows SQL Server 2017 Developer on Windows SQL Server 2014 Developer - duplicate (do not use) SQL Server 2014 Enterprise - duplicate (do not use) SQL Server 2014 Enterprise Core - duplicate (do not use) SQL Server 2014 Standard - duplicate (do not use)

症状

请考虑以下情况:

  • 你拥有大量使用 tempdb 数据库的应用程序,或者你拥有特定的 tempdb 数据库工作负荷。

  • 升级到 Microsoft SQL Server 2016 或更高版本,然后开始查看 PFS 页面争用。

  • 遵循 tempdb 数据库 最佳做法 和添加多个数据文件。

在此方案中,繁重的 PFS 页面争用会继续并影响系统性能。

注意如果页面的映射很容易除以8088,则它是 PFS 页面。例如,页面2:3:905856 是 tempdb 中 file_id = 3 的 PFS。

解决方案

累积更新信息

在 SQL Server 的以下累积更新中修复了此问题:

SQL Server 2017 累积更新7       

SQL Server 2016 SP2 的累积更新1

SQL Server 2016 SP1 的累积更新9

SQL Server 的每个新的累积更新均包含以前的累积更新中包含的所有修补程序和所有安全修补程序。 查看 SQL Server 的最新累积更新:

SQL Server 2017 的最新累计更新

SQL Server 2016 的最新累计更新

此问题已在以下文章中介绍的修补程序中修复:

4099490适用于 SQL Server 2016 SP1 的即时修补程序更新程序包4099490

此修补程序通过在同一数据文件中的多个 PFS 页面上执行循环分配,除了所有 tempdb 数据文件上的循环分配,提高了 PFS 页面分配。 因此,数据文件中包含的 PFS 数据页越多,数据文件越多,分配分配就越好。

注意 由于数据现在分布在 tempdb 数据库文件中的 PFS 间隔内,因此 数据库收缩 等操作将变得更占用资源。 但是,一般情况下,不建议在操作的典型过程中收缩 tempdb。

SQL Server 的 Service Pack 信息:

此更新在 SQL Server 的以下 service pack 中已修复:

       SQL Server 2014 的 Service Pack 3

Service Pack 具有累积性。 每个新 Service Pack 除了包含所有新修复程序外,还包含以前 Service Pack 中的所有修复程序。 我们建议为该服务包应用最新的服务包和最新的累积更新。 在安装最新的 Service Pack 之前,不需要安装以前的 Service Pack。 使用以下文章中的表1查找有关最新服务包和最新累积更新的详细信息。

如何确定 SQL Server 及其组件的版本、版本和更新级别

 

状态

Microsoft 已确认这是在“适用范围”部分中列出的 Microsoft 产品存在的问题。

参考

有关减少 SQL Server tempdb 数据库中的分配争用的建议

需要更多帮助?

需要更多选项?

了解订阅权益、浏览培训课程、了解如何保护设备等。

社区可帮助你提出和回答问题、提供反馈,并听取经验丰富专家的意见。