摘自《Troubleshooting Oracle Performance》
Nested Loops
一个Outer Loop,一个Inner Loop,外部的循环驱动内部的循环
Merge Join
两边的数据集会先按连接的字段排序,然后再连接
Hash Join
左边的数据集会用来构建一个哈希表,等哈希表建好之后,再逐条查看右边的数据集,看它们是否可以命中这张哈希表
比较
Nested Loops可以在产生第一条记录时即开始返回数据,Hash Join有时可以,Merge Join完全不行
如果目标是尽快返回所有记录
1.若查询的选择性较高,则Hash Join最佳
2.否则,则应使用Nested Loops