KB4051359-修复:当在 SQL Server 2016 的扩展事件会话中捕获表值参数时,SQL Server 内存不足,即使未启用收集语句或数据流

随时随地通过任何设备使用 Microsoft 365 工作

升级到 Microsoft 365 以在任何位置使用最新的功能和更新。

立即升级

症状

假设你创建了一个扩展事件会话或 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 用于描述软件更新的术语

需要更多帮助?

扩展你的技能
了解培训
抢先获得新功能
加入 Microsoft 内部人员

此信息是否有帮助?

谢谢您的反馈意见!

谢谢你的反馈! 可能需要转接到 Office 支持专员。

×