22
第第第第 第第第第第第第 第第第第第第第第第第第第第第第第 第第 DBMS 第第第第第第第第第第第第第第第第第第第第第第第第 第第第 · 第第第第 第第第 DBMS 第第第第第第第第第第第第第第第 第第第第第 第第第第第第第第第 DBMS 第第第第第第第第 第第第第第第 第第第第第第第第第第第第第第第第第第第第 第第第第第第 第第第第第第第第第第第第第第第第 第第第第第第第 第第第 统一 第第第第第第第 第第第第第第第第第第第第第第第第第第第 第第第第第 第第第第第第第第第第第第第第 第第第第第第第 第第第第第第第 第第第第 第第 第第第第第第第第第第第第 第第第 第第第第第第第第第第第第第 第第第 第第第第第第第第第第第第 第第第 第第第第第第第第第第 第第第 第第第第第第第第 第第第 第第第第第第 Q

第十七章 并行数据库技术 随着数据库的规模和应用领域的扩大,以及 DBMS 的不断发展, 逐渐把计算机系统的处理能力推向瓶颈位置。基于冯

  • Upload
    tod

  • View
    77

  • Download
    7

Embed Size (px)

DESCRIPTION

Q. 第十七章 并行数据库技术 随着数据库的规模和应用领域的扩大,以及 DBMS 的不断发展, 逐渐把计算机系统的处理能力推向瓶颈位置。基于冯 · 诺依曼计 算机的 DBMS 已经难以适应迅速增长的性能要求。并行计算机 系统的出现为高性能 DBMS 的实现带来了希望。 以并行计算机 系统为基础的数据库系统称为并行数据库系统。在具有较多处 理器的并行计算机上建立的数据库系统有可能成为下一代的高 性能数据库系统。 本章介绍目前该领域关系数据库主要研究的 三方面工作:  数据的划分及其在多处理器或多 磁盘之间的分布 - PowerPoint PPT Presentation

Citation preview

Page 1: 第十七章 并行数据库技术 随着数据库的规模和应用领域的扩大,以及 DBMS 的不断发展, 逐渐把计算机系统的处理能力推向瓶颈位置。基于冯

第十七章 并行数据库技术随着数据库的规模和应用领域的扩大,以及 DBMS 的不断发展,逐渐把计算机系统的处理能力推向瓶颈位置。基于冯 · 诺依曼计算机的 DBMS 已经难以适应迅速增长的性能要求。并行计算机系统的出现为高性能 DBMS 的实现带来了希望。以并行计算机系统为基础的数据库系统称为并行数据库系统。在具有较多处理器的并行计算机上建立的数据库系统有可能成为下一代的高性能数据库系统。本章介绍目前该领域关系数据库主要研究的三方面工作: 数据的划分及其在多处理器或多 磁盘之间的分布 算法设计和实现 查询优化 第一节 支持并行数据库的并行结构 第二节 关系数据库系统的固有并行性 第三节 关系查询的并行数据流方法 第四节 并行数据库的物理组织 第五节 并行数据操作算法 第六节 查询优化技术

Q

Page 2: 第十七章 并行数据库技术 随着数据库的规模和应用领域的扩大,以及 DBMS 的不断发展, 逐渐把计算机系统的处理能力推向瓶颈位置。基于冯

第一节 支持并行数据库的并行结构并行数据库系统的研究以三种并行计算结构为基础:(1) 共享主存储器结构 (Shared Memory ,缩写为 SM) 多个处理机通过高速通信网络连接共享主存,每个处理机 可直接存取若干个磁盘存储器。(2) 共享磁盘结构 (Shared Disk ,缩写为 SD) 多个有独立主存的处理机通过高速通信网络连接磁盘存储 器。每个处理机可直接存取任意磁盘存储器。(3) 无共享资源结构 (Shared Nothing ,缩写为 SN) 多个有独立主存和磁盘存储器的处理机通过高速通信网络 互连。机群并行计算环境实际上是一种典型的 SN 结构。

1986 年 stonebraker 提出, SN 结构是支持并行数据库系统的最好的并行结构,这观点已经得到普遍接受。它具有如下优点: 共享资源最小化减少了由资源竞争带来的系统干扰; 任意增加处理机而不会增加机间干扰; 查询过程的网络通信量最小。本章以 SN 并行计算结构为基础。

Q1

接下页

Page 3: 第十七章 并行数据库技术 随着数据库的规模和应用领域的扩大,以及 DBMS 的不断发展, 逐渐把计算机系统的处理能力推向瓶颈位置。基于冯

处理机 处理机 处理机

高速通信网络

共享存储器

磁盘 磁盘 磁盘

处理机 处理机 处理机

高速通信网络

磁盘 磁盘 磁盘

存储器 存储器 存储器

共享磁盘结构 SD[ 例 ] IBM 的 SYSPLEX 系统

三种并行计算结构的示意图

高速通信网络

共享主存结构 SM[ 例 ] IBM/370 多处理机系统,VAX 多处理机系统, SEQUENT 系统

处理机

磁盘

存储器

处理机

磁盘

存储器

处理机

磁盘

存储器

无共享结构 SN[ 例 ] NCUBE 系统, TERADATA 系统,TANDEM 系统, VAXcluster 系统

Q11

Page 4: 第十七章 并行数据库技术 随着数据库的规模和应用领域的扩大,以及 DBMS 的不断发展, 逐渐把计算机系统的处理能力推向瓶颈位置。基于冯

第二节 关系数据库系统的固有并行性关系查询由若干个基本数据操作组成。这些数据操作与关系集合一起形成了一个关系代数系统。由于关系代数的封闭性和数据操作的相对独立性,关系查询具有如下三种固有并行性:

1. 数据操作间的流水并行性 (pipelining parallelism) 例 1 对 N 个关系 Ri 依次先进行选择操作然后进行投影操作 . i<N, Ri+1 与 Ri 可以并发进行。属于流水并行性。 2. 数据操作间的独立并行性 (inter_operator parallelism) 例 2 操作 1:R1=A,BR 操作 2:S1=A,CS 操作 3:T= R1S1 操作 1 和操作 2 可以并发进行。属于独立并行性。 3. 单数据操作内的并行性 (intra_operator parallelism) 例 2 中,操作 1 和 2 之间有独立并行性。 ( 操作 1, 操作 2) 与操作 3 之间有流水并行性。 例 2 的综合操作是一个可并行执行的操作。本节给出这三种并行性的严格定义。这三种并行性为建立并行数据库系统提供了有利的条件。

Q2

接下页

Page 5: 第十七章 并行数据库技术 随着数据库的规模和应用领域的扩大,以及 DBMS 的不断发展, 逐渐把计算机系统的处理能力推向瓶颈位置。基于冯

设 (,R) 是关系代数系统,是操作集合, R 是关系集合,数据库查询是 (,R) 上的代数表达式。设 op ,input(op)R 和 output(op)R 分别表示 op的输入输出关系。

[定义 1] 设 B=(W,R,S) 是一个主存缓冲区,其中 S 是用于存储数据的 队列, W 是写指针, R 是读指针, W 和 R 的初始值皆为空。 1. 操作 produce(X,B,k) 定义如下: if (S 中可用空间 <k) then 等待 S 可用空间 k ; 在 X 中提取 k 个数据写到 S 的第 W 到第 W+k-1 单元; 调整读写指针 R 和 W ; 2. 操作 consume(X,B,k) 定义如下: if (S 中数据个数 <k) then 等待 S 数据个数 k ; 从 S 读出第 R 到 R+K-1 单元的数据传送到 X ; 调整读写指针 R 和 W ;

Q21

接下页

Page 6: 第十七章 并行数据库技术 随着数据库的规模和应用领域的扩大,以及 DBMS 的不断发展, 逐渐把计算机系统的处理能力推向瓶颈位置。基于冯

[ 定义 2] 设 OP1,OP2.若 output(op1)input(op2) 空集, 则称 OP2 直接依赖 OP,若两个数据操作无依赖关系,则称它们互相独立。

op1

op2

op1

op2[ 定义 3] 若 OP1,OP2 相互独立,则称之为可独立并行执行,在此情况下 OP1 和 OP2 可各分配一个处理机同时执行。

Q22

接下页

Page 7: 第十七章 并行数据库技术 随着数据库的规模和应用领域的扩大,以及 DBMS 的不断发展, 逐渐把计算机系统的处理能力推向瓶颈位置。基于冯

[ 定义 4] 设 OP1,OP2 , B=(W,R,S) 是一个主存缓冲区 .若 OP1 含有 produce(output(op1),B,k) 操作 , OP2 含有 consume(input(op2),B ,k) 操作 ,则称 OP2 在缓冲区 B 上以流水线方式依赖于 OP1

写读op1

op2

S

Q23

[ 定义 5] 设 OP1,OP2.若 OP2 在缓冲区 B 上以流水线方式依赖于 OP1 ,则称两操作可以按流水线方式并行操作。在此情况下 OP1 的输出是 OP2 的输入,若各分配一个处理机,则它们在 OP1 产生第一个输出后即可并行运行。

[ 定义 6] 设 OP. 若 OP 可分为多个可独立并行执行或按流水线方式并行执行的子操作,则称之为可并行执行的操作。此时数据操作可由多处理器并发执行。

Page 8: 第十七章 并行数据库技术 随着数据库的规模和应用领域的扩大,以及 DBMS 的不断发展, 逐渐把计算机系统的处理能力推向瓶颈位置。基于冯

第三节 关系查询的并行数据流方法并行数据流法使用传统的顺序数据操作算法实现关系查询的并行执行,实现关系数据库系统的三种固有并行性。这些方法有两种形式:简单并行数据流方法和基于数据分布的并行数据流方法。已经被某些并行数据库原型系统使用。一 . 简单并行数据流法的步骤1. 由查询语句产生数据流图;2. 为数据流图的数据操作分配处理机;3. 协调各个处理机,调用顺序 数据操作算法,完成查询。这种方法可以有效地发挥关系数据库查询的独立并行性和流水线并行性,但由于关系数据没有划分,故难以实现单关系操作的并行性,可用下边的方法解决。

insert into Cselect *from A,Bwhere A.x=B.y

insert

join

Scan A Scan B

C

流水并行

独立并行流水并行

插入

连接

投影选择

A.x B.y

投影选择

3

2

1a 1b

Q3

接下页

Page 9: 第十七章 并行数据库技术 随着数据库的规模和应用领域的扩大,以及 DBMS 的不断发展, 逐渐把计算机系统的处理能力推向瓶颈位置。基于冯

insert into Cselect *from A,Bwhere A.x=B.y

.贰 基于数据划分的并行数据流法 (PPDA)

特点: 1. 将关系划分为多个子集合存放在不同磁盘。 2. 除查询运行器外还引入操作:合并 merge 和分解 split例:关系 A 分三处存放; 关系 B 分两处存放,结果 C 分三处存放。 下边是并行处理 Ax=yB 的过程。其中有五个原始元组扫描操 作、三个连接操作和三个插入操作,均由相应处理机负责。第一步:扫描 (scan)A 、 B 分布的元组,用投影操作取出所需属性, 用选择操作按连接属性的分段区间把元组分配 (spllit) 到 适当的的连接处理机。连接操作前预先合并 (merge) 各路 输入的元组。各关系子集采用独立并行方式处理。第二步:三个连接处理机以独立并行方式实现连接操作。第二步:每个连接处理机的输出对最后结果 C 的 三个存储地的插入处理机作元组分配。 这同样需要经过 split 和 merge 的预处理, 才能完成 C 的本地插入操作。这种基于数据划分的算法请参考下页的示意图。

Q31

接下页

Page 10: 第十七章 并行数据库技术 随着数据库的规模和应用领域的扩大,以及 DBMS 的不断发展, 逐渐把计算机系统的处理能力推向瓶颈位置。基于冯

insert1

merge1

split1

join1

merge4

split4

scan1

merge5 merge6 merge7 merge8 merge9

split5

scan2

split6

scan3

split7

scan4

split8

scan5

split2

join2

split3

join3

insert2

merge2

insert3

merge3

A1 A2 A3 B1 B2

C1 C2 C3

本地插入操作

连接 AB

投影选择

Q32

关系 A 存放三处 关系 B 存放两处

分配到插入器

合并各路记录

关系 C 存放三处

合并各路记录

分配到连接器

独立并行

流水线并

流水线并

独立并行

独立并行

按连接属性的分段分配元组

按结果存储地分配元组

Page 11: 第十七章 并行数据库技术 随着数据库的规模和应用领域的扩大,以及 DBMS 的不断发展, 逐渐把计算机系统的处理能力推向瓶颈位置。基于冯

第四节 并行数据库的物理组织

并行数据库物理组织的核心问题是关系的划分与分布问题。即如何把一个关系划分为子集、如何把这些子集分布到多个处理结点,才能使查询时间最小?以下我们把关系的划分与分布简称为数据划分。数据划分的目的是把关系的划分子集均匀地分布到多个处理结点,使得在查询处理过程中系统的并行性能得到充分的发挥。下边介绍两种数据划分技术:

一 一维数据划分 按某一个属性 ( 称为划分属性 ) 的值划分整个关系。 支持在关系划分属性上具有条件谓词的数据查询。 二 多维数据划分方法 . 可支持在非划分属性上的查询 .

Q4

Page 12: 第十七章 并行数据库技术 随着数据库的规模和应用领域的扩大,以及 DBMS 的不断发展, 逐渐把计算机系统的处理能力推向瓶颈位置。基于冯

壹 一维数据划分:这种方法的特点是按某一个属性 ( 称为划分属性 ) 的值划分整个关系。

1 Round-Robin 划分方法:这种划分方法按序号把关系元组均匀分配到 N 个处理结点。 处理结点号 = 元组序号 mod N 此法适合于大数据量查询,不能有效支持具有低选择性谓词的查询,因这种查询需要启动所有的处理结点,但仅存取很少元组。故该划分方法使许多处理结点的操作变得无意义。见下例,查询工作证号 =‘135415’ 的员工资料。该查询将启动全体处理结点。查询结果不多于一个。许多处理结点的操作是无意义的。

高速通信网络

存放关系 R 的第 001-099 号元组

存放关系 R 的第 100-199 号元组

存放关系 R 的第 200-299 号元组

Q41a

接下页

处理结点

处理结点

处理结点

Page 13: 第十七章 并行数据库技术 随着数据库的规模和应用领域的扩大,以及 DBMS 的不断发展, 逐渐把计算机系统的处理能力推向瓶颈位置。基于冯

2 HASH 划分方法 : 该方法定义一个把划分属性映射到处理结点的 HASH 函数 H 。 处理结点号 =H( 元组的划分属性值 ),把元组存储到对应的处理结点上。此法适于大数据量查询和划分属性上具有低选择性谓词的操作,也适于进行划分属性上的连接操作。缺点是易引起数据不均匀。见下例,设工作证号是划分属性。查询身份证号 =‘123456821015001’ 的员工资料。该查询仅启动一个处理结点。容易理解,数据分布可能不均匀。

高速通信网络

存放身份证号的 Hash 值为 0 的全体元组

存放身份证号的 Hash 值为 1 的全体元组

存放身份证号的 Hash 值为 2 的全体元组

若两个关系都采取相同的 HASH 划分方法,则分布结构适合于进行在划分属性上的连接操作。因为连接属性等值的元组安排在相同的处理结点,所以连接操作可以在所有处理结点独立并行地进行。

Q41b

接下页处理结点

处理结点

处理结点

Page 14: 第十七章 并行数据库技术 随着数据库的规模和应用领域的扩大,以及 DBMS 的不断发展, 逐渐把计算机系统的处理能力推向瓶颈位置。基于冯

3 RANGE 划分方法:将划分属性的值域分为 N 段。按划分属性值所属的段号 (1~N) 把关系的全体元组分布到 N 个处理结点。例如把公民每隔十岁拨为一个年龄组,存放在一个处理结点。此法比 HASM 法多了一个优点:支持划分属性上的区域查询。缺点也是容易引起数据分布不均匀。

存放出生日期在 70-79 年的全体元组

存放出生日期在 80-89 年的全体元组

存放出生日期在 90-99 年的全体元组

划分粒度小,使处理结点多,有利于那些消耗大量系统资源的查询,使之提高响应速度;划分粒度大,使处理结点少,有利于那些消耗较少系统资源的查询,使之节省系统开销。上述各划分方法的共同缺点是划分粒度固定不变。这导致平均查询效率较低。

Q41c

接下页

高速通信网络

处理结点

处理结点

处理结点

Page 15: 第十七章 并行数据库技术 随着数据库的规模和应用领域的扩大,以及 DBMS 的不断发展, 逐渐把计算机系统的处理能力推向瓶颈位置。基于冯

4 Hybrid-Range 划分方法设 FC 是结点元组数,该法在 Range 法基础上增加优化 FC 的环节。目的是使得资源需求低的查询启动较少的处理结点,而资源需求高的查询启动较多的处理结点。设关系 R 有 n 个查询 Qi (i=1..n) ,查询 Qi 的处理器时间是 CPUi ,磁盘存取时间是 DISKi ,通信时间是 NETi ,处理的元组数是 Ti ,执行频率是 Fi ,每增加一个处理器的额外的时间开销是 CP.于是使用 M 个处理结点进行关系 R 的查询,平均响应时间是 RT(M)= i=1..n(CPUi+DISKi+NETi)Fi/M+M·CP令上述函数的一阶导数为零,可求得使 RT(M) 最小的 M : M= [ i=1..n(CPUi+DISKi+NETi)Fi/CP]1/2

此外可求得每个处理结点的平均元组数 FC=(i=1..n TiFi)/M 上述四种方法都是一维划分。缺点是:不能有效地支持在关系的非划分属性上进行具有条件谓词的数据查询。因为这种查询必须送到所有处理结点。例如若把公民资料按年龄组别分布到各处理结点,则博士收入统计的小范围查询也必须抵达所有处理结点。这种情况可用多维划分方法解决。

Q41d

Page 16: 第十七章 并行数据库技术 随着数据库的规模和应用领域的扩大,以及 DBMS 的不断发展, 逐渐把计算机系统的处理能力推向瓶颈位置。基于冯

贰 多维数据划分方法 (CMD)该方法可支持在非划分属性上的查询。下边用简例说明。设调整因子 n=2 ,处理结点数 N=4 ,结点号是 0-3 。关系 R 有 d=2 个属性即 A 和 B ,每属性称作‘维’。对每维值域排序后等分 Nn=8 段,序号 0-7 。设关系 R 均匀分布。 d=2 个属性的段构成 (Nn)d=64 个笛卡

0 1 2 3 4 5 6 77 3 0 1 2 3 0 1 26 2 3 0 1 2 3 0 15 1 2 3 0 1 2 3 04 0 1 2 3 0 1 2 33 3 0 1 2 3 0 1 22 2 3 0 1 2 3 0 11 1 2 3 0 1 2 3 00 0 1 2 3 0 1 2 3

属性A

的段

属性 B 的段号

结点号 0-3

儿乘积,用段号超方体表示,例如属性A 第 6 段和属性 B 第 3 段的笛卡儿乘积用超方体 (6,3) 表示。超方体 (i,j) 映射到节点号 k 的公式这里取为 k=(i+j) mod N ,例如结点 0 存放 16 个超方体 00,04,13,22,31,40,17,26,35,44,53,62,71,57,66,75 ;类似可列出其它三个结点存放的超方体集。调整因子 n 的作用是使划分后的每个超方体所包含的 R 元组可装入一个磁盘页。CMD 划分的关系是部分排序的,即超方体内未排序,但全体超方体沿所有维是排序的。使 SORT 和 JOIN 操作效率较高。

Q42

Page 17: 第十七章 并行数据库技术 随着数据库的规模和应用领域的扩大,以及 DBMS 的不断发展, 逐渐把计算机系统的处理能力推向瓶颈位置。基于冯

第五节 并行数据操作算法为了实现查询的并行处理,前述的并行数据流法使用传统顺序数据操作算法。本节介绍另一种方法-并行数据操作算法。这类算法可以更充分发挥多处理器的并行性。讨论的中心是连接操作 RS 。

R,S R,S

R,SR,S

A

DC

B

R

S不动,R环行

Q51

一 基于嵌套循环的并行连接算法 (PNLJ)算法: 1) 对处理结点集建立一个环序;2) 把 R 和 S 均匀地分配到各结点;3) 独立并行:各结点对 R 、 S 的元组按连接属性排序;4) 独立并行:各结点在本地实施对 R 与 S 的连接;5) 剩余的 R 元组传播至下一结点。转到 4) ;6) 当 R 跑完最后一个结点,算法停。各结点的本地连接是独立并行。但整体看 RS 则是流水线并行。此算法适合于处理结点多或 R 与 S 大小差别大的情况。

接下页

Page 18: 第十七章 并行数据库技术 随着数据库的规模和应用领域的扩大,以及 DBMS 的不断发展, 逐渐把计算机系统的处理能力推向瓶颈位置。基于冯

二 基于排序合并的并行连接算法 (PSMJ)算法:1) 使用连接域的 HASH 映射把 R 和 S 的元组分布到 N 个结点;2) 独立并行:各结点对 R 和 S 元组按连接属性排序,然后连接。由于使用连接域上的 Hash 函数,将关系分布到各个处理结点,故 R 和 S 中能连结的元组对必落在同一结点,从而 R 和 S 的连接操作可在本地完成。下图描述以身份证号为连接属性的操作。

当两个关系的元组数较接近时, PSMJ 算法效率高于 PNLJ 。但数据分布的不均匀性 ( 数据偏斜 ) 对算法带来消极的影响,容易造成 HASH 桶的溢出,并引起处理器负荷不平衡。现在已有克服数据偏斜影响的并行连接算法。

高速通信网络

存放身份证号 Hash 值为 0 的 R 元组和 S 元组然后排序后连接。存放身份证号 Hash 值为 1 的 R 元组和 S 元组然后排序后连接。存放身份证号 Hash 值为 2 的 R 元组和 S 元组然后排序后连接。

Q52

结点

结点

结点

接下页

Page 19: 第十七章 并行数据库技术 随着数据库的规模和应用领域的扩大,以及 DBMS 的不断发展, 逐渐把计算机系统的处理能力推向瓶颈位置。基于冯

算法 :(1) 用 H1 把 R 划分为 M 个子集, HASH 值为 i 的元组送入子集 Ri 并存盘;(2) 用 H1 把 S 划分为 M 个子集, HASH 值为 i 的元组送入子集 Si 并存盘;(3)for i=0 to M-1 do ( 并行地 ) 用 H2 把 Ri 分布到 N 个处理结点,在内存上建立 R 的 HASH 表; 用 H2 以流水线方式把 Si 分布到 N 个处理结点; 每个处理结点收到 Si 元组立即扫描 Ri 的 HASH 表进行连接;(4) 输出 RS.

三 基于 HASH 的并行连接算法 (PHJ)输入:关系 R 和 S ;连接 域上的 HASH 函数 H1 和 H2 ;子集合 数 M 和结点数 N 。输出: RS

高速通信网络

R1

S1

R2

S2

R0

S0

H1 值为 1H1 值为 2H1 值为 0

关系 R 和 S 各 M 个子集存放在磁盘

H2 值为 0

H2 值为 1

H2 值为 2

Q53

处理结点

处理结点

处理结点

N 个处理结点

Page 20: 第十七章 并行数据库技术 随着数据库的规模和应用领域的扩大,以及 DBMS 的不断发展, 逐渐把计算机系统的处理能力推向瓶颈位置。基于冯

第六节 查询优化技术

查询优化的研究主要围绕着具有多个连接操作的复杂查询的优化问题进行,这样的查询简称为 MJ 查询。在顺序数据库系统中,人们追求的是最小工作量。由于使用单处理器,最小响应时间和最小工作量基本是一致的。但使用多处理器的并行数据库系统则不同,由于查询问题有不同程度的顺序性,最小响应时间和最小工作量并不一致,在这种情况下,人们追求的是查询的最小响应时间。一个 MJ 查询可表示为一个查询树 G=(V,E) ,其中结点 V 是连接操作和关系的集合,叶结点表示关系,内结点表示连接操作及其结果, (r,v)E 表示结点 r 是结点 v 的操作关系。查询树是二叉树,本节介绍基于查询树的以下算法:

一 基于左线性树的查询优化算法 (LDT)二 基于右线性树的查询优化算法 (RDT)

Q6

接下页

Page 21: 第十七章 并行数据库技术 随着数据库的规模和应用领域的扩大,以及 DBMS 的不断发展, 逐渐把计算机系统的处理能力推向瓶颈位置。基于冯

R2

J

J

J

J

……

……

B1 P1

B2 P2

Bn-1 Pn-1

Bn Pn

Sn+1

扫描 R1 扫描 R2

扫描 R3

扫描 Rn

扫描 Rn+1

建 HASH 表 匹配 HASH 表 , 完成连接

匹配 HASH 表 , 完成连接建 HASH 表

1

2

3

壹 基于左线性树的查询优化算法 (LDT)这是基于左线性树和 HASH_ 连接算法的 MJ 查询优化方法。左线性树是一个特殊的查询树,每个内结点的右子结点是 一个关系,左子结点是一个内结点或一个关系。把进 行连接操作的两个关系分为内关系和外关系。HASH_ 连接由两个操作组成: BUILD 操作:扫描内关系,建立 HASH 表; PROBE 操作:扫描外关系,匹配 HASH 表,完成连接;因有两个连接操作并行,故需要两个 HASH 表的存储空间。

R1

R3

Rn

Rn+1

利用左线性树

对多个关系进行连

Sn

S3

S2S1

数据操作相关图

Q61

接下页

Page 22: 第十七章 并行数据库技术 随着数据库的规模和应用领域的扩大,以及 DBMS 的不断发展, 逐渐把计算机系统的处理能力推向瓶颈位置。基于冯

二 基于右线性树的查询优化算法 (RDT)在右线性树中,每个内结点的左子结点是一个关系,右子节点是一个内结点或一个关系。与左线性树相同,把连接操作的两个关系分为内关系和外关系。并行执行 N 个关系的扫描及建立 HASH 表。所有 N 个连接操作都可并行执行,但需要足够的主存空间存储 N 个 HASH 表。当主存空间有限时,需要解决存储空间的分配问题,目前已有几种解决方案。

J

J

J

J

……

……

B1 P1

B2 P2

Bn-1 Pn-1

Bn Pn

S1

S2

S3

Sn

Sn+1

扫描 R1

扫描 Rn

扫描 Rn+1

建 HASH 表 n+1

……

匹配 HASH 表 n+1,完成连接

独立并

行 流水线并

R2

R3

Rn

Rn+1

R1

匹配 HASH 表 n,完成连接匹配 HASH 表 3,完成连接匹配 HASH 表 2,完成连接

扫描 R3

扫描 R2

建 HASH 表 n

建 HASH 表 3

建 HASH 表 2

数据操作相关图

利用左线性树

对多个关系进行连

Q62