时间:2021-07-01 10:21:17 帮助过:13人阅读
欢迎进入Oracle社区论坛,与200万技术人员互动交流 >>进入 Predicate Information (identified by operation id): 1 - access("A"."TABLE_NAME"="B"."TABLE_NAME") Note - dynamic sampling used for this statement (level=2) 统计信息 16 recursive
欢迎进入Oracle社区论坛,与200万技术人员互动交流 >>进入
Predicate Information (identified by operation id):
1 - access("A"."TABLE_NAME"="B"."TABLE_NAME")
Note
- dynamic sampling used for this statement (level=2)
统计信息
16 recursive calls
0 db block gets
377 consistent gets
117 physical reads
0 redo size
84520 bytes sent via SQL*Net to client
1813 bytes received via SQL*Net from client
129 SQL*Net roundtrips to/from client
0 sorts (memory)
0 sorts (disk)
1913 rows processed
当我们在等值连接的基础上加上限制条件>,就变sort merge join
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行。
执行计划
Plan hash value: 200774751
| Id | Operation | Name | Rows | Bytes | Cost (%CPU)| Time |
| 0 | SELECT STATEMENT | | 768 | 39936 | 25 (8)| 00:00:01 |
| 1 | MERGE JOIN | | 768 | 39936 | 25 (8)| 00:00:01 |
| 2 | SORT JOIN | | 8 | 272 | 4 (25)| 00:00:01 |
| 3 | TABLE ACCESS FULL| TTT1 | 8 | 272 | 3 (0)| 00:00:01 |
|* 4 | SORT JOIN | | 1921 | 34578 | 21 (5)| 00:00:01 |
| 5 | TABLE ACCESS FULL| TTT | 1921 | 34578 | 20 (0)| 00:00:01 |
Predicate Information (identified by operation id):
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
内存、临时空间
内存、临时空间
特点
当有高选择性索引或进行限制性搜索时效率比较高,能够快速返回第一次的搜索结果。
当缺乏索引或者索引条件模糊时,排序合并连接比嵌套循环有效。
当缺乏索引或者索引条件模糊时,哈希连接连接比嵌套循环有效。通常比排序合并连接快。在数据仓库环境下,如果表的纪录数多,效率高。
缺点
当索引丢失或者查询条件限制不够时,效率很低;当表的纪录数多时,效率低。
所有的表都需要排序。它为最优化的吞吐量而设计,并且在结果没有全部找到前不返回数据。
为建立哈希表,需要大量内存。第一次的结果返回较慢。
[1] [2] [3] [4]