徵狀
假設您在執行 Windows Server 2012 或較舊版本 Windows 作業系統的電腦上安裝64位版本的 Microsoft SQL Server 2014、2016或2017。 當 SQL Server 使用所有的使用者模式虛擬位址空間時,您可能會在 SQL Server 錯誤記錄中收到記憶體不足的錯誤訊息。 此外,查詢需要花很長的時間才能完成,而 SOS_MEMORY_TOPLEVELBLOCKALLOCATOR 的等待就會發生。
當您檢查下列資訊點時,您會發現有非常低的可用虛擬位址空間:
-
DBCC MEMORYSTATUS-Process/系統計數區段-可用的虛擬記憶體
-
DMV: sys.dm_os_process_memory 欄 virtual_address_space_available_kb
這些值會在 x64 程式上從 8 tb (TB)開始,繼續順向下並達到幾個千百萬位元組(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 累計更新都包含所有的修正程式,以及前一個累積更新中所包含的所有安全性修正程式。 查看 SQL Server 的最新累計更新:
注意: 在您套用此更新之後,您必須將 trace 標誌8075新增為啟動參數,才能啟用此變更。
狀態
Microsoft 已確認<適用於>一節中所列的 Microsoft 產品確實有上述問題。
參考
瞭解 Microsoft 用於描述軟體更新的 詞彙。