症状
请考虑以下情形:
- 你有一个大量使用 tempdb 数据库的应用程序,或者你有一个特定的 tempdb 数据库工作负荷。
- 升级到 Microsoft SQL Server 2016 或更高版本,并开始看到 PFS 页面争用。
- 遵循 tempdb 数据库 最佳做法 并添加多个数据文件。
在此方案中,大量 PFS 页面争用会继续,并影响系统性能。
注意 如果页面的地图很容易除以 8088,则为 PFS 页面。 例如,第 2:3:905856 页是 tempdb 中file_id=3 中的 PFS。
解决方法
累积更新信息
以下SQL Server累积更新中修复了此问题:
关于SQL Server的累积更新:
SQL Server的每个新累积更新都包含以前的累积更新中包含的所有修补程序和所有安全修补程序。 查看SQL Server的最新累积更新:
此问题已在以下文章中所述的修补程序中得到修复:
4099490 SQL Server 2016 SP1 的按需修补程序更新包
此修补程序通过跨同一数据文件中的多个 PFS 页执行轮循机制分配,以及跨所有 tempdb 数据文件执行轮循机制分配,改进了 PFS 页分配。 因此,数据文件中包含的 PFS 数据页越多,数据文件越多,分配分布就越好。
注意 由于数据现在分布在 tempdb 数据库文件中的 PFS 间隔内,因此 数据库收缩 等操作将变得更加占用资源。 但是,通常不建议在典型的操作过程中收缩 tempdb。
SQL Server的 Service Pack 信息:
以下 Service Pack 中修复了此更新,适用于SQL Server:
Service Pack 3 for SQL Server 2014
关于SQL Server的 Service Pack:
Service Pack 具有累积性。 每个新 Service Pack 除了包含所有新修复程序外,还包含以前 Service Pack 中的所有修复程序。 建议为该服务包应用最新的 Service Pack 和最新的累积更新。 在安装最新的 Service Pack 之前,不需要安装以前的 Service Pack。 使用以下文章中的表 1 查找有关最新 Service Pack 和最新累积更新的详细信息。
如何确定 SQL Server 及其组件的版本、版本类别和更新级别
状态
Microsoft 已确认在 "适用于" 部分中所列的 Microsoft 产品中存在问题。
参考资料