相关疑难解决方法(0)

查询优化器运算符选择 - 嵌套循环与散列匹配(或合并)

我的一个存储过程执行时间过长.看一下查询执行计划,我能够找到操作耗时太长时间.它是一个嵌套的循环物理运算符,具有外部表(65991行)和内部表(19223行).在嵌套循环上,它显示估计行= ​​1,268,544,993(乘以65991乘19223),如下所示:

在此输入图像描述

我阅读了一些关于用于连接的物理运算符的文章,并且对于这种情况是否嵌套循环或散列匹配更好一点感到困惑.从我可以收集到的:

散列匹配 - 当没有有用的索引可用时,优化器使用散列匹配,一个表明显小于另一个表,表不在连接列上排序.散列匹配也可能表示可以使用更有效的连接方法(嵌套循环或合并连接).

问题:在这种情况下,哈希匹配会比嵌套循环更好吗?

谢谢

t-sql sql-server-2008 sql-execution-plan

21
推荐指数
2
解决办法
2万
查看次数

是什么让SQL查询优化器在嵌套循环和散列连接之间做出决定

通常,什么使SQL查询优化器在嵌套循环和散列连接之间做出决定.

sql performance

7
推荐指数
1
解决办法
1842
查看次数