> 데이터 베이스 > MySQL 튜토리얼 > Oracle表三种连接方式

Oracle表三种连接方式

WBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWB
풀어 주다: 2016-06-07 15:03:57
원래의
1318명이 탐색했습니다.

欢迎进入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表三种连接方式

본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿