<海量数据库解决方案>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、位图连接索引
如何理解这个名词:最简单的方法就是将连接所得结果集合视为一个一般的表,然后再将位图连接索引视为是基于该表的列而创建的位图索引。
表连接的最优化方案
表连接,这里指狭义的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、位图连接索引
如何理解这个名词:最简单的方法就是将连接所得结果集合视为一个一般的表,然后再将位图连接索引视为是基于该表的列而创建的位图索引。
无论生活、还是技术,一切都不断的学习和更新~~~努力~