KB4077105 - 修正:當 SQL Server 程式的虛擬位址空間在SQL Server中非常低時,會出現記憶體不足錯誤

Applies To
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 MEMORYSTATUS - [處理序/系統計數] 區段 - 可用虛擬記憶體
  • DMV:sys.dm_os_process_memory - 資料行virtual_address_space_available_kb

這些值在 x64 進程上大約 8 TB (TB) 開始,並持續下降並達到幾 GB (GB) 。

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

下列資料點會隨著時間持續增加:

  • DMV:sys.dm_os_process_memory和sys.dm_os_memory_nodes - 資料行virtual_address_space_reserved_kb
  • DBCC MEMORYSTATUS - 記憶體管理員區段 - VM 保留

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

備註 相關問題也會在 KB 3074434 中說明。

解決方式

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

SQL Server 2017 累積更新 4

SQL Server 2016 SP1 的累積更新 8

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

關於 SQL Server 的累積更新:

SQL Server 的每個新累積更新都包含所有 Hotfix 和先前累積更新的所有安全性修正程式。 查看 SQL Server 的最新累積更新:

適用於 SQL Server 2017 的最新累積更新

適用於 SQL Server 2016 的最新累積更新

適用於 SQL Server 2014 的最新累積更新

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

狀態

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

參考資料

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