oracle中三种表连接算法综述
嵌套连接将要被处理的数据集划分为外部循环(驱动器数据源)和内部循环(驱动数据源),外部循环只执行一次,内部循环执行的数量等于在循环之外执行的数据集的数量。
这种连接的优点是很少使用内存。
如果驱动程序数据源是有限的,并且驱动表在连接列上有相应的索引,则这种连接是有效的。
这种连接通常是在OLTP系统中看到。
2。排序合并连接(排序合并连接)
顾名思义,首先是对排序合并,分别对连接的数据集进行排序,然后合并实现过程如下:表一个数据集进行排序,结果保存工作区域A;对B数据集进行排序,将结果存储在B和B中,最后用工作区中的数据进行排序。
这种连接方法,分选成本非常大,和整理工作相关的内存参数sort_area_size和sort_area_retained_size,均在PGA。
三.散列连接(哈希连接)
两个数据处理集散列连接被称为(构建输入)来构造输入和检测(探针输入),哈希表结构的输入记录的每一行的输入结构,每行检测输入检测哈希表,找出与记录条件的连接。
较小的表作为结构输入,较大的表用作检测输入,因此散列连接效率相对较高。在执行计划中,较小的输入表位于前面,较大的检测表在后面。
哈希连接只能在相等连接的条件下执行。
对哈希表空间相关的内存参数是:hash_area_size,也是PGA。