KB4099472 - 2014、2016 及 2017 SQL Server PFS 頁面輪詢演算法改進

套用到
SQL 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 的累積更新中得到修正:

累積更新7 for SQL Server 2017

累積更新1 for SQL Server 2016 SP2

累積更新9 for SQL Server 2016 SP1

關於 SQL Server 的累積更新:

每次新的 SQL Server 累積更新都包含了之前累積更新中包含的所有熱修補與安全修補。 請查看 SQL Server 的最新累積更新:

SQL Server 2017 最新累積更新

SQL Server 2016 最新累積更新

這個問題已在以下文章中描述的熱修正中得到修正:

4099490 2016 SQL Server SP1 的按需熱修補程式更新套件

此修正透過在同一資料檔中執行多個 PFS 頁面的輪詢分配,改善了 PFS 頁面分配,除了所有 tempdb 資料檔的輪詢配置外。 因此,資料檔案中包含的 PFS 資料頁越多,資料檔案越多,分配分配就越好。

由於資料現在分散在 tempdb 資料庫檔案中的 PFS 區間,像 資料庫縮減 這類操作將變得更耗資源。 然而,一般不建議在典型運作過程中縮小 tempdb。

SQL Server 服務包資訊:

此更新已在以下 SQL Server 服務包中修正:

Service Pack 3 for SQL Server 2014

關於 SQL Server 服務包:

Service Pack 是累積性的。 每個新版 Service Pack 都包含前一版 Service Pack 中所有的修正程式,以及任何新增的修正程式。 我們的建議是套用該服務包的最新服務包及累積更新。 所以在安裝最新版的 Service Pack 之前,您不需要安裝前一版的 Service Pack。 請使用以下文章中的表1,查詢最新服務包及最新累積更新的更多資訊。

如何確定 SQL Server 及其元件的版本、版本與更新等級

狀態

Microsoft 已確認這是「適用對象」一節中列出的 Microsoft 產品中的問題。

參考資料

減少 SQL Server tempdb 資料庫中配置爭用的建議