KB4468102 - 修正:當您追蹤涉及 SQL Server 2016 和 2017 中 Table-Valued 參數的 RPC 事件時,記憶體使用量過多

套用到
SQL Server 2017 Developer SQL Server 2017 Enterprise SQL Server 2017 Enterprise Core 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)

症狀

請考慮以下案例:

  • 您已安裝 SQL Server 2016 和 2017。
  • 您可以使用 rpc_starting、rpc_completed、RPC:Starting、RPC:Completed 或 Audit Schema Object Access SQL Server Extended Events 或 SQL Server Profiler 來追蹤 RPC 事件。
  • 您使用包含資料 表值參數 (具有許多資料列的TVP) 的遠端程式呼叫。

在此情況下,可能會出現過度記憶體使用情況,並且伺服器效能可能會下降。 如果您查詢 sys.dm_os_memory_clerks DMV,您會注意到相較於沒有進行中的 RPC 追蹤收集時,OBJECTSTORE_LBSS clerk 有許多記憶體配置。

解決方式

此問題已在下列 SQL Server 更新中修正:

SQL Server 2017 累積更新 13

SQL Server 2017 的累積更新 12

SQL Server 2016 SP2 的累積更新 4

附註

  • 套用此更新後,修正程式會限制每個事件中 TVP 的追蹤資料列數目。 這意味著某些追蹤事件可能不包含 TVP 中的所有資料列。
  • 如需已修正擷取 TVP 時SQL Server記憶體不足問題的另一個修正,請參閱 KB 4051359。

關於 SQL Server 組建

SQL Server 的每個新組建都包含前一個組建中的所有 Hotfix 和安全性修正程式。 建議您安裝適用於您 SQL Server 版本的最新組建:

SQL Server 2017 組建版本

適用於 SQL Server 2016 的最新累積更新

狀態

Microsoft 已確認這是「適用對象」一節中列出的 Microsoft 產品中的問題。

參考資料

瞭解 Microsoft 用來說明軟體更新的標準 術語 。