使用 Microsoft 登录
登录或创建帐户。
你好,
使用其他帐户。
你有多个帐户
选择要登录的帐户。

症状

假设你有多个统计和表,并且表包含 Microsoft SQL Server 2012 或 SQL Server 2014 数据库中的许多列。 当你执行许多特殊查询以从这些表中同时检索数据时,你可能会在执行期间遇到 CMEMTHREAD 等待。

解决方案

累积更新信息

在 SQL Server 的以下累积更新中,此问题首先已修复。

SQL Server 的每个新的累积更新均包含以前的累积更新中包含的所有修补程序和所有安全修补程序。 我们建议你下载并安装 SQL Server 的最新累积更新:

更多信息

在 SQL Server 2012 中编译或重新编译查询时,引擎需要从统计信息直方图获取输入。 我们需要执行系统表扫描,然后加载在内存或缓存中涉及的表的特定直方图。 这些系统表项(对于统计信息)存储在系统表缓存(CACHESTORE_SYSTEMROWSET)中。 用于在缓存中创建这些条目的内存对象未分区,并且是全局的。 因此,如果你在执行此操作期间执行了并发内存分配,你将在此内存对象上遇到 CMEMTHREAD 等待。 当你提交需要编译或重新编译的大量查询时,通常会发生这种情况。 此修补程序更改全局内存对象进行分区,以便使用系统表缓存的并发内存分配不会遇到争用和 CMEMTHREAD 等待。有关类似问题的详细信息,请参阅 KB 3026082:修复 SOS_CACHESTORE:系统表行集缓存上的 spinlock 争用在 SQL Server 2012 或2014中导致 CPU 使用率较高

状态

Microsoft 已确认这是在“适用范围”部分中列出的 Microsoft 产品存在的问题。

需要更多帮助?

需要更多选项?

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

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

此信息是否有帮助?

你对语言质量的满意程度如何?
哪些因素影响了你的体验?
按“提交”即表示你的反馈将用于改进 Microsoft 产品和服务。 你的 IT 管理员将能够收集此数据。 隐私声明。

谢谢您的反馈!

×