热门标签 | HotTags
当前位置:  开发笔记 > 数据库 > 正文

Oracle表三种连接方式

欢迎进入Oracle社区论坛,与200万技术人员互动交流进入PredicateInformation(identifiedbyoperationid):1

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


推荐阅读
author-avatar
freezing-wing
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有