徵狀
假設您在 Microsoft SQL Server 2016 中建立延伸事件會話或可捕獲rpc_starting或RPC_COMPLETED事件的SQL Profiler 追蹤,且未啟用收集語句或資料流程(您未設定Xevents 會話的collect_statement或collect_data_stream 參數,或是 SQL Profiler 的Text data或Binary 資料參數)。 如果在會話期間捕獲了涉及 Sql server 活動 的資料表值參數 (TVPs) ,則可能會增加 sql server 的記憶體使用量,而不需要這麼做。 這可能會造成嚴重下降,而且在極端情況下會耗盡 SQL Server 記憶體,而且您收到下列硬性錯誤701訊息,以進行持續的操作:
資源池「預設」中的系統記憶體不足,無法執行此查詢
注如果您使用 DBCC MEMORYSTATUS 或 query sys.dm_os_memory_clerks,您可能會發現 OBJECTSTORE_LBSS 記憶體工作員顯示大量的記憶體使用量。
解決方案
未設定為收集語句或資料流程資料流程的擴展事件會話或探測器追蹤問題仍需要大型記憶體緩衝區,因為此修正程式會處理 TVP 資料。
記事如果您的擴展事件會話或 SQL 事件探測器追蹤是設定成收集語句或資料/二進位資料流程,且在這個會話期間,可能會發生 TVPs 的 sql server活動,即使已套用目前的修正程式,sql server 的記憶體使用量仍會繼續增長,就像在這種情況下,需要記憶體佔用才能處理追蹤中的 TVP 資料流程,而且完全預期。
因此,我們建議您不要對可能會大量使用 TVP 式活動的 SQL Server 實例(以數位或大小)為基礎的事件和資料欄位,執行永久會話或追蹤。
SQL Server Service Pack:
此修正套裝程式含在 SQL Server 2016 Service Pack 2中。
注針對其他修正程式,限制 TVP 中追蹤的列數,請參閱 KB 4468102。
關於 SQL Server 2016 組建
每個新組建的 SQL Server 2016 包含先前組建中的所有修復程式和安全性修正程式。 我們建議您安裝 SQL Server 2016 的最新組建。
狀態
Microsoft 已確認本篇文章<適用於>一節所列之 Microsoft 產品確實有上述問題。
參考
了解 Microsoft 用來說明軟體更新的術語。