Oracle表三种连接方式(sql优化)(五)
4 - access("A"."TABLE_NAME">"B"."TABLE_NAME")
filter("A"."TABLE_NAME">"B"."TABLE_NAME")
Note
-----
- dynamic sampling used for this statement (level=2)
统计信息
----------------------------------------------------------
10 recursive calls
0 db block gets
74 consistent gets
1 physical reads
0 redo size
321209 bytes sent via SQL*Net to client
8171 bytes received via SQL*Net from client
707 SQL*Net roundtrips to/from client
2 sorts (memory)
0 sorts (disk)
10581 rows processed
SQL> select a.table_name,b.table_name,b.tablespace_name from ttt a,ttt1 b
2 where a.table_name > b.table_name;
已选择10581行。
总结
类别
NESTED LOOP
SORT MERGE JOIN
HASH JOIN
优化器提示
USE_NL
USE_MERGE
USE_HASH
使用的条件
任何连接
主要用于不等价连接,如<、 <=、 >、 >=;但是不包括 <>
仅用于等价连接
相关资源
CPU、磁盘I/O
内存、临时空间
内存、临时空间
特点
当有高选择性索引或进行限制性搜索时效率比较高,能够快速返回第一次的搜索结果。
当缺乏索引或者索引条件模糊时,排序合并连接比嵌套循环有效。
当缺乏索引或者索引条件模糊时,哈希连接连接比嵌套循环有效。通常比排序合并连接快。在数据仓库环境下,如果表的纪录数多,效率高。
缺点
当索引丢失或者查询条件限制不够时,效率很低;当表的纪录数多时,效率低。
所有的表都需要排序。它为最优化的吞吐量而设计,并且在结果没有全部找到前不返回数据。
为建立哈希表,需要大量内存。第一次的结果返回较慢。