SQL Server:hidden";排序“;在左联接查询的执行计划中插入

SQL Server:hidden";排序“;在左联接查询的执行计划中插入,sql,sql-server,left-join,execution,Sql,Sql Server,Left Join,Execution,SQL 2017标准 我有一个星型模式模型的数据库(数据仓库) 为了填充事实表,我有一个存储过程,其中一个临时表有大约4700000行。 为了填充维度ID,我在临时表和维度表之间进行了左连接操作。 例如: 问题是,当使用较少数量的联接时(例如,仅针对前5或6个维度),查询速度非常快 有19个连接,需要4个多小时 执行计划显示瓶颈来自查询优化器插入的隐藏“排序”操作 从每个维度读取数据时,sql server会在与临时表联接之前对维度数据进行排序。 在临时表上引入索引并没有解决这个问题。 即使将查

SQL 2017标准 我有一个星型模式模型的数据库(数据仓库) 为了填充事实表,我有一个存储过程,其中一个临时表有大约4700000行。 为了填充维度ID,我在临时表和维度表之间进行了左连接操作。 例如:

问题是,当使用较少数量的联接时(例如,仅针对前5或6个维度),查询速度非常快

有19个连接,需要4个多小时

执行计划显示瓶颈来自查询优化器插入的隐藏“排序”操作

从每个维度读取数据时,sql server会在与临时表联接之前对维度数据进行排序。 在临时表上引入索引并没有解决这个问题。 即使将查询限制为临时表索引中的第一个字段也没有帮助

使用

CREATE CLUSTERED COLUMNSTORE INDEX
在临时桌上解决了这个问题。 谢谢大家。 您可以查看更多详细信息
(如果您使用的是SQL Server 2016标准版,则需要SP2)

是否可以为维度表(包括索引)添加DDL?请在代码问题中给出一个--cut&paste&runnable代码;示例输入(作为初始化代码)以及所需和实际输出(包括逐字错误消息);标签和版本;清晰的说明和解释。对于包含DBMS/product和DDL的SQL,其中包括约束和索引以及表格格式的基表初始化。用于SQL性能,包括解释结果和统计信息。(约束、索引和计划对性能至关重要。)PS请使用标准标点符号。请使用文本表示可以作为文本给出的内容。增加图像。DBMS排序或索引以避免比较join每个表中的所有行对。Hi David。我当前无法访问部署此功能的服务器。将于本周一上午尽快发布。谢谢你的关注。抱歉耽搁了,但我会尽快发布信息,因为这对我来说非常重要。再次感谢。
CREATE CLUSTERED COLUMNSTORE INDEX