zoukankan      html  css  js  c++  java
  • oracle三种表连接方式

    1.sort merge join
    排序合并连接的执行过程如下所示:
    将每个行源的行按连接谓词列排序
    然后合并两个已排序的行源,并返回生成的行源
    例如:
    select * from employees d,departments t where d.department_id=t.department_id;
    访问机制如下:访问departments表并排序department_id列,访问employees表并排序department_id列,然后依次交替比较、归并。

    注意:排序合并连接一般用在两张表中没有索引,并且连接列已经排好序的情况下。
    2.嵌套循环连接(Nested Loops Join)
    *两个表中的一个被定义为“外部表”(或“驱动表”)
    *另一个表被称为“内部表”
    *将针对外部表中折每一行检索内部表中所有匹配的行
    注意:join 的顺序很重要,一般选择小表作为“驱动表”,大表作为“内部表”
    例如 select *
    from Sales S inner join Customers C
    on S.Cust_Id = C.Cust_Id
    option(loop join)
    3.hash join

    • 优化器对小表利用连接键在内存中建立HASH表
      *扫描大表,每得到一条记录,就来HASH表中“探测”一次,找出与hash表匹配的行
      注意:Hash Join 是CBO做大数据集连接时的常用方式。
  • 相关阅读:
    前端学习:html基础学习四
    前端学习:html基础学习三
    cogs 2691. Sumdiv
    cogs 421. HH的项链
    Bzoj 2038: [2009国家集训队]小Z的袜子(hose)
    【NOIP模拟赛】密码锁
    cogs1612. 大话西游
    cogs1583. [POJ3237]树的维护
    Bzoj 3343: 教主的魔法
    SPOJ375 Query on a tree
  • 原文地址:https://www.cnblogs.com/flamechan1981/p/13495670.html
Copyright © 2011-2022 走看看