<海量数据库解决方案>2011051901

【摘抄】

表连接的最优化方案

表连接,这里指狭义的JOIN,是连接数据的最基本方法。

表连接方式:
A、嵌套循环表连接NESTED LOOPS
    既是最传统的表连接方式,也是最普遍的表连接方式
    通过优先权限处理某个集合来从中获取常量值,并利用该常量值去对应的集合中查找满足连接条件的对应行,所连接数量的多少会随着表连接顺序的不同而不同。
    特征:
        次序性
        先行性
        从属性
        选择性
        连接条件的状态,方向性
        允许局部范围扫描
        过滤查询条件的影响
   
    为了决定表连接的顺序,首先先应当做的是,在执行表连接的诸表中寻找位于最下层的集合。
B、排序合并表连接SORT MERGE
    最大特征:
        即使不从对应集合中获取任何值,也能够只凭借自身所具有的条件实现决定查询范围的目的
        它能够在很大程度上减少随机读取次数
        始终按照全部范围扫描的方式进行处理
       
C、哈希连接Hash Join
    最大好处:摆脱了对海量数据处理造成最大负担的随机读取和排序操作。
   
    随机读取的代价主要是指:在最坏的情况下,为了读取一行数据而需要从磁盘中将整个数据块全部读入。
    排序操作的代价,指对内存造成了很大的负担。小内存大排序。
   
    Build Input
        将为了连接而提前执行的读取准备操作
    Probe Input
        在后来读取的同时,所执行的连接操作
   
    In-MEMORY哈希连接,在连接过程中完全没有必要使用已经创建了的索引。再次允许局部范围扫描
    延迟哈希连接,在连接过程中完全没有必要使用已经创建了的索引。但不允许局部范围扫描

D、半连接Semi Join
指与表连接非常相似的一种数据连接方法。即在使用了子查询的情况下,所实现的子查询与主查询之间的连接

表连接和子查询最本质的区别就在于集合间的从属性上。集合之间的交换律是否成立

    半连接的执行计划:
    1、嵌套循环型半连接
    2、排序合并型半连接
    3、过滤型半连接
        常用关键字:Exists
    4、哈希(Hash)半连接
    5、ANTI半连接:指在连接条件中使用Not的连接类型
   
E、星型(Star)连接
    关键字:笛卡尔积
    可想象下有多大的数据集

F、星变形(Star Transformation)连接
    星变形连接可以使用位图索引

G、位图连接索引
    如何理解这个名词:最简单的方法就是将连接所得结果集合视为一个一般的表,然后再将位图连接索引视为是基于该表的列而创建的位图索引。
   
   
   
  

无论生活、还是技术,一切都不断的学习和更新~~~努力~
原文地址:https://www.cnblogs.com/GoGoagg/p/2050722.html