Heim >Datenbank >MySQL-Tutorial >Oracle表三种连接方式

Oracle表三种连接方式

WBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWB
WBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOriginal
2016-06-07 15:03:571325Durchsuche

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

Oracle表三种连接方式

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn