NESTED LOOPS HASH JOIN

来源:互联网 发布:opencv threshold源码 编辑:程序博客网 时间:2024/05/29 00:32
嵌套循环(NESTED LOOPS)
Oracle从较小结果集(驱动表/外部表)中读取一行,然后和较大结果集(被探查表/内部表)中的所有数据逐条进行比较(嵌套循环可以用于非等值连接),如果符合规则,就放入结果集中,然后取较小结果集的下一条数据继续进行循环,直到结束。嵌套循环只适合输出少量结果集或者是用于快速输出结果集。

哈希连接(HASH JOIN)
如果要返回大量结果集(比如返回200W数据),根据嵌套循环算法,被驱动表会扫描200W次,显然这是不对的。看到这里你应该明白为什么有些SQL优化了跑几秒,没优化跑几个小时甚至跑1天都不出结果。返回大量结果集适合走HASH JOIN。HASH JOIN算法非常复杂
0 0
原创粉丝点击