套用到
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-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 2017 的累積更新4

      SQL Server 2016 SP1 的累積更新8  

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

每個新的 SQL Server 累計更新都包含所有的修正程式,以及前一個累積更新中所包含的所有安全性修正程式。 查看 SQL Server 的最新累計更新:

SQL Server 2017 的最新累計更新

SQL Server 2016 的最新累計更新

SQL Server 2014 的最新累計更新

注意: 在您套用此更新之後,您必須將 trace 標誌8075新增為啟動參數,才能啟用此變更。

狀態

Microsoft 已確認<適用於>一節中所列的 Microsoft 產品確實有上述問題。

參考

瞭解 Microsoft 用於描述軟體更新的 詞彙

需要更多協助嗎?

想要其他選項嗎?

探索訂閱權益、瀏覽訓練課程、瞭解如何保護您的裝置等等。