症状
将 Microsoft SQL Server 2012 Service Pack 1 的累积更新 3 应用于 SQL Server 实例或 SQL Server 2014 后,SQL Server 性能可能会降低,并且可能会发生内存泄漏。
如果在出现此问题时运行以下查询,则会看到 MEMOBJ_COMPILE_ADHOC 内存对象的内存值( 以 MB 为单位) 和 行计数 值不断增加:
select type, sum(pages_in_bytes)/1024.0/1024.00 'Mem in MB', count (*) 'row count' from sys.dm_os_memory_objects
where type like '%MEMOBJ_COMPILE_ADHOC%'
group by type
便笺
- DBCC FREEPROCCACHE 命令无助于减少 内存 MB 值。
- 只有当您运行许多sp_prepare过程来准备参数化 Transact-SQL 语句时才会出现此问题。
解决方法
此问题已首先在 SQL Server 的以下累积更新中修复。
SQL Server 2014 累积更新 1 /en-us/help/2931693
SQL Server 2012 SP1 累积更新 7 /en-us/help/2894115
关于 SQL Server 的累积更新
SQL Server 的每个新累积更新都包含上一个累积更新中包含的所有修补程序和所有安全修补程序。 查看 SQL Server 的最新累积更新:
状态
Microsoft 已确认在 "适用于" 部分中所列的 Microsoft 产品中存在问题。
参考资料
请参阅 Microsoft 用于描述软件更新的术语。