KB4051359-修正程式:當在 SQL Server 2016 中的延伸事件會話中捕獲資料表值參數時,SQL Server 會用盡記憶體,即使未啟用收集語句或資料流程

假設您在 Microsoft SQL Server 2016 中建立延伸事件會話或可捕獲rpc_startingRPC_COMPLETED事件的SQL Profiler 追蹤,且未啟用收集語句或資料流程(您未設定Xevents 會話的collect_statementcollect_data_stream 參數,或是 SQL Profiler 的Text dataBinary 資料參數)。 如果在會話期間捕獲了涉及 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 的最新組建

Microsoft 已確認本篇文章<適用於>一節所列之 Microsoft 產品確實有上述問題。

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

Need more help?

Expand your skills
Explore Training
Get new features first
Join Microsoft Insiders

Was this information helpful?

How satisfied are you with the translation quality?

What affected your experience?

Any additional feedback? (Optional)

Thank you for your feedback!

×