Oracle表三种连接方式

欢迎进入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]

郑重声明:本文版权包含图片归原作者所有,转载文章仅为传播更多信息之目的,如作者信息标记有误,请第一时间联系我们(delete@yzlfxy.com)修改或删除,多谢。

郑重声明:本文版权归原作者所有,转载文章仅为传播更多信息之目的,如作者信息标记有误,请第一时间联系我们修改或删除,多谢。

留言与评论(共有 0 条评论)
昵称:
匿名发表
   
验证码: