KB4057280- 修正:在記憶體優化資料表查詢時,CPU 使用率會高SQL Server

套用到
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 Developer SQL Server 2017 Enterprise SQL Server 2017 Enterprise Core 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)

症狀

請考慮以下案例:

  • 你在 2017、2016 和 2014 SQL Server Microsoft 使用記憶體內線上交易處理 (OLTP) 。
  • 你在一個記憶體優化的表格上執行查詢,該表包含一個大型索引。

在這種情況下,如果你在查詢執行時使用大型索引,CPU 使用率可能會迅速飆升到 100%。 如果你有多個邏輯處理器,只有其中一個處理器的使用率可能很快達到 100%。

原因

此問題是因為記憶體內 OLTP 的垃圾回收如果在查詢執行中使用大型索引,完成時間可能會很長。

解決方式

此問題已在以下 SQL Server 的累積更新中得到修正:

累積更新4 for SQL Server 2017

Cumulative Update 7 for SQL Server 2016 SP1

Cumulative Update 2 for SQL Server 2014 SP3

安裝此更新後,必須啟用 TF () 9945 的追蹤旗標才能解決此問題。 要啟用 TF 9945,請參閱 MSDN) Microsoft開發者網路 ( (Transact-SQL) 的追蹤旗 標主題。

關於 SQL Server 的累積更新:

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

SQL Server 2017 最新累積更新

SQL Server 2016 最新累積更新

SQL Server 2014 最新累積更新

現況

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

參考資料

了解 Microsoft 用來說明軟體更新的術語