在 SQL Server 2014年在 RESOURCE_SEMAPHORE_QUERY_COMPILE 上等待大查询编译

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

点击这里察看该文章的英文版: 3024815
症状

尝试在 Microsoft SQL Server 2014年同时执行多个大型查询时某些查询可能会等待RESOURCE_SEMAPHORE_QUERY_COMPILE。只有一个查询所需的内存比大网关阈值 (如由DBCC MEMORYSTATUS命令的输出) 来编译可以继续执行即使服务器具有足够的可用内存。

注意:这是预期的行为。但在大的批处理系统如数据仓库中这可能降级中并发执行多个查询的性能。

解决方案
累积更新信息
第一次修复该问题的SQL Server累积更新包

建议: 设置 SQL Server 的累积更新
SQL Server 的每个新累积更新包含所有修补程序和所有安全修复程序是附带在以前的累积更新。我们建议您下载并安装最新的累积更新 SQL Server:
此修补程序引入了一个新的跟踪标志-T 6498。此跟踪标记允许多个访问大网关时没有足够的内存可用的大型查询编译。它所基于的 SQL Server 目标内存、 80 百分比和它允许在一个大型查询编译每 25 千兆字节 (GB) 的内存。等这允许 64 GB 内存目标计算机上的两个大型查询编译的。

应用此修补程序后,您必须启用跟踪标志-T 6498 以启用新的行为。

注意:如果您通过使用DBCC TRACEON命令启用跟踪标记,您不必重新启动服务器来跟踪标志生效。但可能需要 10 秒钟要应用新的大网关配置。

Microsoft 提供了一个受支持的修补程序。然而,此修补程序仅用于解决本文中描述的问题。仅对出现这一特定问题的系统应用此修补程序。

如果此修复程序可供下载,则在此知识库文章顶部"提供修补程序下载"部分。如果未显示此节,提交到 Microsoft 客户服务和支持以获取此修复程序的请求。

注意:如果出现其他问题或需要任何故障诊断时,您可能需要创建单独的服务请求。对于此特定的修补程序不需要照常收取支持费用到其他支持问题和事项。Microsoft 客户服务和支持电话号码,或创建单独的服务请求的完整列表,请访问下面的 Microsoft 网站: 注意:"修补程序下载可用"窗体显示获取此修复程序的语言。如果看不到您的语言,则修补程序没有那种语言的版本。
更多信息

原因

SQL Server 使用于调节编译的编译网关。网关体系结构是一种 SQL Server 保留控制传入查询编译的内存使用情况的方法。有三个网关: 小型、 中型和大型。

有关如何使用DBCC MEMORYSTATUS命令来监视内存使用情况 KB 907877: 如何使用 DBCC MEMORYSTATUS 命令来监视 SQL Server 2005 中的内存使用情况.
状态
Microsoft 已经确认这是"适用于"一节中列出的 Microsoft 产品中的问题。

警告:本文已自动翻译

属性

文章 ID:3024815 - 上次审阅时间:06/22/2015 15:29:00 - 修订版本: 4.0

Microsoft SQL Server 2014 Business Intelligence, Microsoft SQL Server 2014 Developer, Microsoft SQL Server 2014 Enterprise, Microsoft SQL Server 2014 Enterprise Core, Microsoft SQL Server 2014 Standard, Microsoft SQL Server 2014 Express, Microsoft SQL Server 2014 Web, Microsoft SQL Server 2014 Service Pack 1

  • kbautohotfix kbqfe kbhotfixserver kbfix kbsurveynew kbexpertiseadvanced kbmt KB3024815 KbMtzh
反馈