你目前正处于脱机状态,正在等待 Internet 重新连接

当您执行许多特殊查询在 SQL Server 2012年或 SQL Server 2014 CMEMTHREAD 等待发生修复:

重要说明:本文是由 Microsoft 机器翻译软件进行的翻译并可能由 Microsoft 社区通过社区翻译机构(CTF)技术进行后期编辑,或可能是由人工进行的翻译。Microsoft 同时向您提供机器翻译、人工翻译及社区后期编辑的文章,以便对我们知识库中的所有文章以多种语言提供访问。翻译的文章可能存在词汇、句法和/或语法方面的错误。Microsoft 对由于内容的误译或客户对内容的使用所导致的任何不准确、错误或损失不承担责任。

点击这里察看该文章的英文版: 3074425
症状
假定有许多统计信息表和这些表包含 Microsoft SQL Server 2012年或 SQL Server 2014年数据库中的多个列。当执行许多特殊查询,同时从这些表中检索数据时,可能会在执行过程中遇到 CMEMTHREAD 等待。
解决方案

累积更新信息

第一次修复该问题的SQL Server累积更新包 建议: 设置 SQL Server 的累积更新
SQL Server 的每个新累积更新包含所有修补程序和所有安全修补程序,已包含在以前的累积更新。我们建议您下载并安装最新的累积更新 SQL Server:
更多信息
在编译时重新编译查询在 SQL Server 2012年中的,引擎将需要获得统计直方图的输入。我们需要执行系统表扫描,然后将所涉及的表的特定直方图将加载到内存或高速缓存。这些系统表条目 (用于统计信息) 存储在系统表缓存 (CACHESTORE_SYSTEMROWSET)。用于在缓存中创建这些项的内存对象不分区,并且是全局。

因此,如果您有在此操作过程中执行的并发内存分配,就会出现在这个内存对象的CMEMTHREAD等待。当您提交大量需要编译或重新编译查询时通常会发生此种情况。

此修补程序更改的全局内存对象要进行分区,以便使用的系统表缓存的并发内存分配不会遇到争用和CMEMTHREAD在等待。

有关类似问题的更多信息,请参见 KB 3026082: 修复: SOS_CACHESTORE 系统表行集缓存上的自旋锁争用导致在 SQL Server 2012年或 2014年的 CPU 使用率过高.
状态
Microsoft 已经确认这是"适用于"一节中列出的 Microsoft 产品中的问题。

属性

文章 ID:3074425 - 上次审阅时间:08/17/2015 19:13:00 - 修订版本: 2.0

Microsoft SQL Server 2012 Service Pack 2, Microsoft SQL Server 2014 Service Pack 1

  • kbqfe kbsurveynew kbfix kbexpertiseadvanced kbmt KB3074425 KbMtzh
反馈
crosoft.com/ms.js'><\/script>");