Applies ToSQL Server 2014 Developer - duplicate (do not use) SQL Server 2014 Enterprise - duplicate (do not use) SQL Server 2014 Enterprise Core - duplicate (do not use) SQL Server 2014 Standard - duplicate (do not use) SQL Server 2014 Business Intelligence - duplicate (do not use) SQL Server 2014 Web - duplicate (do not use) SQL Server 2016 Developer - duplicate (do not use) SQL Server 2016 Enterprise - duplicate (do not use) SQL Server 2016 Enterprise Core - duplicate (do not use) SQL Server 2016 Standard - duplicate (do not use)

症状

当你运行的查询具有针对聚集列存储表的表联接,并且 ON 子句和 WHERE 子句引用相同的列时,SQL Server 可能不会计算表联接的哈希联接。

原因

出现此问题的原因是在查询规范化期间从查询树中删除了联接键。 按照设计,SQL Server 不会为没有联接键的连接生成哈希联接计划。

解决方案

累积更新信息

此改进是在 SQL Server 的以下累积更新中引入的。

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

解决方法

若要解决此问题,请向查询添加选项(哈希联接)提示。

更多信息

此累积更新介绍 SQL Server 在对列存储表执行表联接时计算哈希联接计划。 访问列存储表的查询可通过哈希联接受益,因为哈希联接可以在批处理模式下执行。若要启用改进,请向查询的启动参数或 add 选项(QUERYTRACE、2441)添加跟踪标记2441。

状态

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

需要更多帮助?

需要更多选项?

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

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