KB4077105- 修正:當SQL Server程序的虛擬位址空間SQL Server非常低時,會產生記憶體外錯誤

套用到
SQL Server 2014 Service Pack 2 - duplicate (do not use) SQL Server 2014 Standard - duplicate (do not use) SQL Server 2014 Developer - duplicate (do not use) SQL Server 2014 Enterprise Core - duplicate (do not use) SQL Server 2017 Developer on Windows SQL Server 2017 Enterprise on Windows SQL Server 2017 Enterprise Core on Windows SQL Server 2017 Standard on Windows 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)

症狀

假設你在一台運行 Windows Server 2012 或較早版本 Windows 作業系統的電腦上安裝了 64 位元版本的 Microsoft SQL Server 2014、2016 或 2017。 當 SQL Server 使用所有使用者模式虛擬位址空間時,您可能會在 SQL Server 錯誤日誌中收到記憶體外錯誤訊息。 此外,查詢執行時間較長,且會產生SOS_MEMORY_TOPLEVELBLOCKALLOCATOR等待。

當你檢視以下資訊點時,你會發現可用的虛擬位址空間非常有限:

  • DBCC 記憶體狀態 - 程序/系統計數區塊 - 可用虛擬記憶體
  • 車輛管理局:sys.dm_os_process_memory - 第virtual_address_space_available_kb欄

這些數值在 x64 程序上起初約 8 TB (TB) ,並逐漸下降,) (數 GB。

當你處於虛擬位址空間非常低的階段時,嘗試執行記憶體分配的查詢也可能遇到等待型的 CMEMTHREAD。

以下數據點將隨時間持續增加:

  • 車輛管理局:sys.dm_os_process_memory與sys.dm_os_memory_nodes - 第virtual_address_space_reserved_kb欄
  • DBCC MEMORYSTATUS - 記憶體管理員區段 - VM 已保留

這些數值通常會以「最大伺服器記憶體」值的倍數增加,最高可達近 8 TB。

相關問題也在 知識庫3074434中描述。

解決方式

此更新包含在以下 SQL Server 的累積更新中:

累積更新4 for SQL Server 2017

累積更新8 for SQL Server 2016 SP1

累積更新10 for SQL Server 2014 Service Pack 2

關於 SQL Server 的累積更新:

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

SQL Server 2017 最新累積更新

SQL Server 2016 最新累積更新

SQL Server 2014 最新累積更新

套用此更新後,必須新增追蹤旗標 8075 作為啟動參數,才能啟用此變更。

狀態

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

參考資料

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