症狀
假設您在執行 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 2014 Service Pack 2 的累積更新 10
關於 SQL Server 的累積更新:
SQL Server 的每個新累積更新都包含所有 Hotfix 和先前累積更新的所有安全性修正程式。 查看 SQL Server 的最新累積更新:
備註 套用此更新之後,您必須將追蹤旗標 8075 新增為啟動參數,才能啟用此變更。
狀態
Microsoft 已確認這是「適用對象」一節中列出的 Microsoft 產品中的問題。
參考資料
了解 Microsoft 用來說明軟體更新的術語。