Applies ToSQL Server 2016 Enterprise Core - duplicate (do not use) SQL Server 2016 Enterprise - duplicate (do not use) SQL Server 2016 Developer - duplicate (do not use) SQL Server 2016 Standard - duplicate (do not use)

症状

假设你创建了一个扩展事件会话或 SQL 事件探查器跟踪,它捕获 Microsoft SQL Server 2016 中的rpc_startingrpc_completed事件,但启用收集语句或数据流(你未为not Xevents 会话设置Collect_statementCollect_data_stream 参数,或者 SQL 事件探查器的Text dataBinary data 参数)。 如果在会话期间捕获了包含表值参数(TVPs)的sql server 活动,则 SQL Server 的内存使用可能会比所需的增长更多。 这可能会导致严重降低,并且在极端情况下运行 SQL Server 内存,并且收到以下硬错误701消息用于持续操作:

资源池 "default" 中的系统内存不足,无法运行此查询

提示如果你使用 DBCC MEMORYSTATUS 或查询 sys.dm_os_memory_clerks,你可能会发现 OBJECTSTORE_LBSS 内存职员显示大量内存消耗。

解决方案

未配置为收集语句或数据流的扩展事件会话或探查器跟踪仍需要较大内存缓冲区的问题,因为此修补程序已解决 TVP 资料。

注意如果你的扩展事件会话或 SQL 事件is探查器跟踪配置为收集语句或数据/二进制流,并且在此会话期间捕获了所涉及的 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 用于描述软件更新的术语

需要更多帮助?

需要更多选项?

了解订阅权益、浏览培训课程、了解如何保护设备等。

社区可帮助你提出和回答问题、提供反馈,并听取经验丰富专家的意见。