HASH JOIN
当大部分行对结果集有贡献时,此功能很有用。
在您的情况下,HASH TABLE
在A
或上建立一个B
表并扫描另一个表比NESTED LOOPS
在索引上执行索引B.ID
或合并优化程序在提示之前使用的排序结果集便宜。
sql Server
的优化程序没有看到:可能是因为您没有收集统计??信息,可能是因为您的数据分布不正确。
既然您提到LOOP JOIN
提高了速度,那么可能是因为JOIN
优化程序选择的顺序不正确。
为什么“ HASH JOIN”或“ LOOP JOIN”会改善此存储过程?
HASH JOIN
当大部分行对结果集有贡献时,此功能很有用。
在您的情况下,HASH TABLE
在A
或上建立一个B
表并扫描另一个表比NESTED LOOPS
在索引上执行索引B.ID
或合并优化程序在提示之前使用的排序结果集便宜。
sql Server
的优化程序没有看到:可能是因为您没有收集统计??信息,可能是因为您的数据分布不正确。
既然您提到LOOP JOIN
提高了速度,那么可能是因为JOIN
优化程序选择的顺序不正确。