分布式数据库的查询优化算法研究_

合集下载

如何优化分布式数据库的查询性能(系列三)

如何优化分布式数据库的查询性能(系列三)

分布式数据库是指将数据库分布在多个物理或者虚拟的计算节点上,通过网络连接形成一个逻辑上的整体。

随着互联网的迅猛发展,分布式数据库在大规模数据处理和存储方面有着重要的应用。

优化分布式数据库的查询性能对于提高系统的响应速度和用户体验至关重要。

本文将从多个角度探讨如何优化分布式数据库的查询性能。

1. 数据划分和分片在分布式数据库中,将数据水平划分到多个服务器上是提高查询性能的关键。

通过将数据按照规则划分成多个分片,可以使查询时只涉及到相关分片,从而减少网络传输和计算开销。

在划分数据时,可以根据业务需求和查询频率进行灵活的优化。

2. 建立索引索引是数据库查询性能的重要因素。

在分布式数据库中,合理建立索引可以避免全表扫描,提高查询效率。

根据业务需求和查询频率,可以选择适当的字段建立索引,如主键、外键和经常被查询的字段等。

同时,保证索引的更新和统计信息的及时更新也非常重要。

3. 数据冗余和缓存数据冗余和缓存是提高查询性能的常用策略。

分布式数据库中,可以将热点数据冗余到多个节点上,从而减少查询时的网络传输开销。

同时,在查询频率较高的场景中,可以使用缓存技术,将查询结果缓存在内存中,提高响应速度。

根据实际应用情况,可以结合使用持久化缓存和分布式缓存,实现最佳的性能优化效果。

4. 查询优化查询优化是一个复杂的过程,可以通过多个方面进行优化。

首先,尽量减少查询的数据量,只查询所需的字段和记录,避免全表扫描和不必要的计算。

其次,合理使用分布式查询语句,如跨节点的关联查询和子查询等,从而减少数据传输和节点间的交互。

同时,选择合适的查询算法和数据结构,如哈希连接、索引连接和排序等,可以进一步提高查询性能。

5. 负载均衡和故障恢复分布式数据库中,负载均衡和故障恢复是提高查询性能的重要手段。

通过动态调整数据分片和节点的负载,可以实现资源的均衡利用,避免单个节点负载过重。

同时,实现自动化的故障恢复机制,如数据冗余和备份,可以保证系统的高可用性和容错性。

分布式数据库查询优化策略研究

分布式数据库查询优化策略研究
维普资讯

数 据 库 与 信 息 管 理 ・ ・ ・ ・ ・ ・
电 脑 知 识 与 技 术
分布式数据库 查询优 化策略研 究
聂 林 娣
( 南京 工 业 大 学 信 息 科 学 与 工程 学 院 , 苏 南 京 2 00 ) 江 10 9
摘 要 : 布 式 数 据 库 系统 由于数 据 的 分布 和 冗余 使 得 分 布 式 查 询 处 理 增 加 了许 多新 的 内容 和 复 杂 性 , 分 因此 分 布 式 查 询 处 理 的 优 化 显
Ka r S d s iu e a b eds i u e u r ;e y o t iai n I GI ES ag r h ; s m * a g t h ;DD—1 a r h y we d : i r td d t a ; i r td q ey u r p i z t ; tb a s tb m o N L oi m s t I l t y e L l oi m S t — g i m l o t
得 尤 为重 要 。 本 文 简要 介 绍 分 布 式查 询 优 化 的 目标 、 略 , 针 对 分 布 式 数 据 库 系统 的 查 询优 化 , 述 三 个典 型 的 算 法 : 策 并 讲 I IE NGL S算 法 、 Ss m *算 法 、DD- yt I e L S 1算 法 。 进 行 对 比 、 化 、 结 。 后 对 S D- 并 优 总 最 D 1算 法进 行 改 进 。 关 键 词 : 布 式 数 据 库 ; 布式 查询 ; 分 分 查询 优 化 ; I IE NGL S算 法 ;yt I*算 法 ;DD- Ss m e L S 1算 法
1引 言
分 布 式 数 据 库 系统 是 数 据 库 系统 与 计 算 机 网 络 系 统结 合 的 产 物。 具有 数 据独 立 性 、 中 与 自制 相结 合 的控 制 机 制 、 在适 当的数 集 存 据冗 余 度 、 务 管理 的分 布性 等特 点 。 分 布式 数据 库 系统 中 , 据 事 在 数

基于半连接的分布式数据库查询优化研究

基于半连接的分布式数据库查询优化研究
站点1 站 点2
④把 x 耶个字节送 到 S 在的站点 :费用 为 C = 所 船
L R 卜 —络 l [酬 — — I [—— — 、 — s I — _ — — 卜 —— —— —— —— — — 、 网一 l
() I (S) 1 Y B () 输 兀 R (S) 2传
询 的相 应 时 闻最 短 为 标 准
有半连 接与连接的操作映射 出具有 与等连 接相同结果
的过 程
在 分 布 式 查 询 优 化 中 经 常 同 时 使 用 这 两 个 标 准 根 据 系 统 应用 的 不 同 . 种 作 为 主 要 标 准 种 作 为 次 一 一
收 稿 日期 :o 0 0 —2 21— 6 3 修 稿 日期 : 0 0 7 2 2 1 -0 — 3
有 用 。 此 . 参 与 连 接 的 数 据 或无 用 的数 据不 必 在 网 因 不
络中来 回传输
用 半 连 接 技 术 实 现 连接 操 作 的 程 序 。 即用 一 组 具
价+ 通信代价 . 查询执行 时使其通信 代价最省是分布式 数据库查询优 化的 目标之一 .另一种 目标是 以每个查
()R,:R o 3 s c ( ) R 5 s
作 的过 程 以及 执 行 代 价 , 比较 两种 半 连 接 操 作 的执 行 代 价 评 估 , 绍 S D- 介 D 1算 法 。 关 键 词 : 布 式 数 据 库 : 询 优 化 ;半 连接 操 作 分 查
0 引 言
分布 式数据库是 把数据 分布在 不 同的站点上 . 但 这 些 数 据 片是 建 立 在 统 一 的逻 辑 框 架 上 的 .并 有 高 级
节 。 影 费用 为 P ; 投 B
② 把 x 个字 节发 送给 R所 在站 点 :费用 为 C=

分布式数据库系统研究设计论文

分布式数据库系统研究设计论文

分布式数据库系统研究设计论文分布式数据库系统是一种将数据库分布到多台计算机上的系统,以实现数据的存储、管理和查询的任务。

在现代大规模数据处理和云计算环境下,分布式数据库系统具有很高的可扩展性、高性能和高可用性的特点。

本文将从分布式数据库系统的研究和设计两个方面进行讨论,探索其相关技术和应用。

在分布式数据库系统的研究方面,我们将关注以下几个方面:数据分片和复制、一致性和容错机制、查询优化和分布式协调等。

首先,数据分片和复制是分布式数据库系统中的关键技术,其目的是将数据划分为多个部分,并将其存储在不同的计算机节点上。

这样可以提高系统的可扩展性和负载均衡能力。

同时,通过数据的复制和备份,可以提高系统的容错性和数据的可用性。

其次,在实现分布式数据库系统时,要保证数据的一致性和容错性。

一致性是指在分布式系统中的所有节点之间的数据是同步的。

容错性是指系统能够在一些节点出现故障的情况下继续正常运行。

为了实现一致性和容错性,可以使用一些技术,如复制协议、主从复制、分布式事务和快照机制等。

最后,查询优化和分布式协调是分布式数据库系统中的关键问题。

查询优化是指在分布式环境中,如何将查询作为一个分布式任务进行协调,以提高查询的效率和性能。

分布式协调是指在分布式环境中如何协调不同节点上的查询,并保证数据的一致性和正确性。

为了实现查询优化和分布式协调,可以使用一些技术,如查询优化器、查询重写和分布式锁机制等。

在分布式数据库系统的设计方面,我们将关注以下几个方面:系统架构、存储管理和查询处理等。

首先,系统架构是分布式数据库系统设计的核心,包括系统的整体架构、节点之间的通信机制和任务调度等。

系统架构的设计应考虑到系统的可扩展性和高可用性。

其次,存储管理是指对分布式数据库系统中的数据进行存储和管理的技术和方法。

存储管理的设计应考虑到数据的分片和复制、数据的均衡存储和数据的访问效率等。

为了提高存储管理的效果,可以使用一些技术,如数据压缩、数据索引和数据分区等。

分布式数据库查询优化方法

分布式数据库查询优化方法
q u e y r p r o c e s s i n g .
【 K e y w o r d s ] D i s t i r b u t e d d a t ba a s e ; D i s t r i b u t e d q u e y; r Q u e y r o p t i m i z a t i o n ; Q u e y r p r o c e s s i n g s t r a t e y; g A l g o i r t h m 0 引 言
容和复杂性. 对 于一个给定的查询. 通常会有 多种可能的策略. 查询优化就是从这许 多策略 中 找 出最有效查询计划的一种处理过程。并针对分布 式数据库 系统的查询优化。 讨论 了三个典型的算法: I N GR E S算 法、 S y s t e m R 算法、 S D D 一1算法 【 关键词 】 分布式数据库; 分布式查询 ; 查询优化 ; 查询 处理策略 ; 算法
近年来 . 随 着 计 算 机 网络 和数 据 库 技 术 的 发 展 . 对 分 布 式 数 据 库 的应用越来越广泛 : 随着应用不断扩大, 数据 的查询也越来越 复杂 , 对 查询的效 率要求也越来越高 , 因此查询处理成为分布式数据库系统中 的一个关键性 的问题【 1 j 。在分布式数据库中. 由于数据的分布与冗余 . 使得查询处理中一般需要站点问的数据传递及通信费用 . 成为查询优 化 的主要矛盾 : 另一方面 . 数据 的分布与冗余也增加 了查询 的并 发处 理 的可能性 . 从而可 以缩短查询处 理的响应时间 , 提高处理 速度。总 之. 分布式查询的规模 与优化 的因素 . 都与集中式查询优化不同 . 因此 许 多 数 据 库 专 家 学 者 致 力 于研 究 分 布 式 数 据 库 查 询 优 化 技 术 这 一 重 要课题 . 并 且 己 经 在这 一领 域 作 了大 量 的 工作 . 也 找 到 了规 律 . 包 括 一 些大 家公认 的经典算法 : 然 而由于分布式数据库本身 的灵活性 , 要想 设计一个算法对于各种情况都是最优的几乎不太现实 . 只能说设计一 个较优的优化算 法 . 它可以解决某一类型的问题[ 2 3 分布式数 据库 中查 询优 化是一项复杂问题 . 已经被证 明属 于 N P完全问题 . 至今 都没有 得到彻底地解决 . 里面尚有许 多问题值得研究 和探讨

基于SDD-1算法的分布式数据库查询优化策略的研究

基于SDD-1算法的分布式数据库查询优化策略的研究
Li t o a Er
(c n mi & n g m n ol eo n u,ee 2 0 5 ,hn ) E 0 o c Ma a e e t lg f h i fi 3 0 9C ia s C e A H
Absr tDitiutd d tba es se sde l t n nc e s oto w o t n n o t ac : srb e a a s y tm ha atwih a d i r a eal fne c n e ta d c mplxt e a eofd srb to e iy b c us iti u in a rdu d nc f r aa iti td O n q ieS nd e n a y o d t d srbu e t i ur ,O t q r s a e y e m s he uey t tg s e patc lry mpo tn . i tx ito c t r ri ua l i ra tTh s e t nr du e d he c a a trsi so uey sr tgywhihba e nt eSDD— l o ih a d d sus edee t n mpr v n eh s h r ceitc fq r tae c s d o h Iag rt m n ic st f a d i h a o i gm tod .
c s )1 ot
B + B — J {e o e S r m B } S 一 S S r m v J f o S E + E + J {p e d S o e e u J n s r t g ) S 一 S S a p n J t c t o t a e y
中图分类号:T 31 P 1
文献标识码 :A
文章编号:10— 59( 00 6 03 — 1 0 7 9 9 2 1 )1— 04 0

基于关系代数的分布式数据库查询优化

基于关系代数的分布式数据库查询优化
言表示的。
1 、如 果 全 局 查 询 语 言 _ 蜀部 数据 库 的 查 询 语 言 不 同 , . 2 与 还 要 将 每一 个 逻 辑 子 查 询 都 转 i 冀相 应 的 局 部 数 据 库 的 本 地 语 言 并 传 到 相 应 的局 部 数 据 库 中 执 行 。 1 、 有 子 查 询 的结 果 返 回并 组 合成 最 终 的查 询 结 果 。 I所 3 个 全 局 查询 被 分解 成 两 类 逻 辑 子 查 询 :一 类 是 相 对 应 于 每 一 个 局 部数 据 库 模 式 的 子 查 询 。 为输 出模 式 子 查 询 : 一 类 称 另 是 把 各 个 子查 询 结 果 合 并 成 输 出 结 果 的 查 询 语 句 .称 为后 处 理 查询 。 通 过 查 询 分解 以后 。 一 个 子查 询对 应 一 个 局 部 数 据 库 , 每 但 子 查 询 的查 询 语 言 还 是 全 局 查 询 语 言 .如 果 全 局 查 询语 言 和 本 地 语 育不 同 。还 要 通 过 查 询 转 换 把 全 局 查 询 语 言 转换 成本 地查 询语育。 不 同的 查 询分 解 对 应 不 同的 系 统 性 能 .因 此 为 达 到优 化 系 统 性 能 的 目的 。 需要 相应 的查 询 优 化 器 。 还 查询 优 化 器 确 定 出 一 个执行计划。 说明需要访问哪些局部 数据 库, 如何组合成中间结 果。 在哪个站点执行全局处 理等 , 最后启动执行查询计划。 在这里 。 我们 只是 粗 略 地 了 解 一 下查 询 过 程 , 点 要 阐 述 重 分 布 式数 据库 查 询 优 化 。 2 分 布 式 数据 库查 询 优 化 的 目标 、 查 询 处 理 和 优 化 在 关 系 数 据 库 系 统 中 占有 非 常 重 要 的 地 位 。 是 分 布式 数 据 库 主要 研 究 问题 之 一 。在 集 中式 数 据 库 中 , 也 查 询优 化 的 目 的在 于 为 每个 用 户查 询 寻 求 总 代 价 最小 的执 行 策 略 。 于这 种 系 统 一 般 都运 行 在 单 个 的计 算 机 上 。 么 使 总 代 价 由 那 最 小 就 意 味 着 使 查 询 的 响 应 时 间 最 短 。所 以 查 询 执 行 总 代 价= c U代 价 +, 价 。 P I 0代

分布式数据库查询优化方法

分布式数据库查询优化方法

分布式数据库查询优化方法
随着互联网的快速发展,分布式数据库成为了处理海量数据的常用工具。

然而,由于数据存储在不同的节点上,分布式数据库查询的效率往往受到限制。

为了提升查询性能,以下是一些分布式数据库查询优化方法。

1. 数据分片与划分:将数据切分成多个片段,并将每个片段存储在不同的节点上。

这样可以有效减少单个节点上的数据量,提升查询的并行性和响应速度。

2. 查询路由与数据定位:通过查询路由和数据定位技术,将查询请求发送到存
储相关数据的节点上。

这样可以减少不必要的网络通信和数据传输,提高查询效率。

3. 副本与冗余:通过在多个节点上存储数据的副本,可以提高分布式系统的容
错性和可用性。

当某个节点发生故障时,可以快速切换到其他节点上执行查询操作。

4. 数据局部性原理:根据数据局部性原理,将常被一起查询的数据存储在同一
个节点上,以减少网络通信和数据传输的开销,提升查询效率。

5. 查询优化与索引设计:通过优化查询执行计划和设计合适的索引,可以减少
查询的扫描范围和数据传输量,提高查询性能。

6. 数据压缩与存储优化:采用数据压缩算法和存储优化技术,可以减小数据的
存储空间占用,降低数据传输和查询的成本。

综上所述,分布式数据库查询优化是提高分布式系统性能的重要手段。

通过适
当的数据分片、查询路由、副本存储、数据局部性、查询优化和存储优化等方法,可以有效提升分布式数据库的查询效率,满足处理海量数据的要求。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

再执行局部数据的查询语句Q2,返回局部查询结果Q2’,最后对局部查询结果Q1’和Q2’根据公共连接属性no进行自然连接操作,连接结果就是最终的全局查询结果。

假设student_1表和student_2表分别有1000条记录,student_1表中满足age>25的记录有100条,则中间查询结果的数据记录有100+100=200条。

由此可见,经过查询优化后,中间查询结果的数据记录大大减少了,下面就分布式数据库的查询优化技术进行详细的介绍。

3.3 查询优化算法3.3.1 基于关系代数等价变换的优化算法基于关系代数等价变换的优化算法使用启发式优化方法对关系代数表达式进行优化。

在关系代数表达式中,最花费时间和空间的运算是笛卡儿积和连接操作,为此,引出三条启发式规则,用于对表达式进行转换,以减少中间关系的大小[1]。

①尽可能早地执行选择操作;②尽可能早地执行投影操作;③避免直接做笛卡儿积,把笛卡儿积操作之前和之后的一连串选择和投影合并起来一起做。

基于关系代数等价变换规则的优化算法的基本思想是:把查询问题转变为关系代数表达式,分析得到的查询语法树,按等价变换规则优化(与集中式数据库的等价变换规则类似,这里不再详述)。

算法首先利用关系代数等价变换规则,把查询树中的连接和合并操作尽可能上提,选择和投影操作尽可能下移到片段的定义处。

然后判断是水平分片还是垂直分片,若为水平分片,则把分片条件与选择条件进行比较,去掉存在矛盾的片段,如果只剩下一个片段,就可以去掉一个并操作。

若为垂直分片,则把片段的属性集与投影操作所涉及的属性集进行比较,去掉无关的所有片段。

如果只剩下一个垂直片段,就可以去掉一个连接操作,从而达到优化查询的目的。

以全局数据模式中的学生表student(no,name,age,sex,class,grade)为例,先对学生表student进行垂直分片,使其分为student_1(no,name,age,sex)和student_2(no,name,class,grade)两个数据模式,再对student_1(no,name,age,sex)进行水平分片,使其分为student_11(sex=’m’)和student_12(sex=’f’)两个数据模式,最终形成student_11(sex=’m’)、student_12、student_2三个局部数据模式。

现在要查询性别为男性并且成绩在90分以上的所有学生的姓名,查询的SQL 语句为:select namefrom studentwhere sex=’m’ and grade>=90其关系代数表达式为:''90(())name sex m grade student πσ=∩>=关系代数表达式的查询树如图3.2所示: πσname''90sex m grade =∩>=student图3.2 关系代数表达式的查询树对应片段上的查询树如图3.3所示: π∞ππno,nameno σσ''sex m =90g r a d e >=∪student_11student_12student_2student_1.no=student_2.no name图3.3 对应的片段上的查询树由图 3.3可以看出student_12的分片条件与查询选择条件矛盾,故去掉student_12片段,也就去掉了一个合并操作,同时还去掉了一个对student_11片段的一个选择操作,从而达到了优化的目的。

优化后的查询树如图3.4所示。

π∞ππno,name noσ90g r a d e >=student_11student_2student_1.no=student_2.noname图3.4 优化后的查询树3.3.2 基于直接连接操作的优化算法这是一种完全在连接的基础上考虑查询处理的策略。

例如,对于一个涉及到存储在不同场地的三个关系进行连接的查询,首先把一个关系传送给第二个关系所在地,然后进行连接运算;再把运算结果传送到第三个关系所在地,计算它们的连接并产生查询结果。

假设关系R 在站点1,关系S 在站点2,在站点2需要获得R ∞S 的结果。

如果在站点2直接计算R ∞S 的值,那么需要先把关系R 从站点1传输到站点2,其执行示意图如图3.5所示。

图3.5 基于连接的执行示例3.3.3 基于半连接操作的优化算法基于半连接操作的优化算法的思想:数据在网络中传输时,以整个关系(也可以是片段)传输,显然是一种冗余的方法。

在一个关系传输到另一场地后,并非每个数据都参与连接操作或都有用。

因此,不参与连接的数据或无用的数据不必在网络中来回传输。

基于半连接的优化策略的基本原理就是采用半连接操作,在网络中尽量只传输参与连接的数据[1]。

可以采用半连接方法计算连接操作的值。

设R 和S 的公共属性为a ,方法如下:R ∞S =(R ∞()a S π)∞S=(R ∝S)∞S等式右边的式子称为半连接程序。

其执行示意图如图3.6所示。

图3.6 基于半连接的执行示例下面讨论这个半连接程序的操作过程和传输代价。

其传输代价用T=X C C 10+估算。

第①步:在站点2计算关系S 在属性a 上的投影()a S π。

第②步:把()a S π的结果从站点2传到站点1,其传输代价为:C 0+C 1*size(a)*val(a[S])其中size(a)表示属性a 的长度,val(a[S])表示关系S 中属性a 的个数。

第③步:在站点1计算半连接,设其结果为R ’,则R ’=R ∝S 。

实际上,这个操作是执行R ∞()a S π。

第④步:把R ’从站点1传到站点2,其传输代价为:C 0+ C 1*size(R)*card(R ’)其中size(R)是R 中元组的长度,card(R ’)是R ’的元组数。

第⑤步:在站点2执行连接操作R ’∞S 。

显然,步骤①、③、⑤无需传输费用,所以执行这样一个半连接程序,总的传输代价为:T 半=C 0+C 1*Size(a)*val(a[S])+ C 0+ C 1*Size(R)*card(R ’)=2*C 0+ C 1 (Size(a)*val(a[S])+ Size(R)*card(R ’))半连接运算不具有对称性,即没有交换性。

因此另一个等价的半连接程序 (S ∝R)∞R ,可能具有不同的传输代价。

通过对它们代价进行比较,就可以确定R 和S 的最优半连接程序。

假设站点1有一职工关系:emp(eno,ename,…)其属性为职工编号(6字节)、姓名(10字节)、…。

假设每个记录是100字节,关系中有10000个记录,那么关系的大小为100*10000=1000000字节。

在站点2有一部门关系:dept(dno,dname,…,eno)其属性为部门编号(4字节)、名称(10字节)、…、和部门经理的职工编号(6字节)。

假设每个记录是35字节,关系中有100个记录,那么关系的大小为35*100=3500字节。

现在考虑用户在站点2上有一个查询:检索每一部门的名称和部门经理的姓名。

假设每个部门都有一个经理,那么查询结果将包含100个记录,并且每个记录为20字节。

用半连接方法的步骤如下:① 在站点2,把dept 关系中的eno 值传输到站点1,即传输F=()eno dept π的值,它的大小为6*100=600字节。

② 在站点1,对被传输过来的F 和emp 关系做连接,然后把要求的属性值从连接结果传输到站点2上。

也就是传输R=,()eno ename emp F π∞,它的大小为16*100=1600字节。

③ 在站点2,通过被传输来的R 和dept 关系做连接来执行查询,然后在站点2上将结果呈现给用户。

这个半连接方法中的传输量为600+1600=2200字节。

在第②步中限制emp 的属性和元组传输到站点2,只传输那些在第③步中实际要与dept 元组做连接的属性和元组。

此时emp 关系的10000个元组中只有100个元组才传过去。

如果不采用半连接程序法,而直接采用连接法,如图3.5所示,那么需要把其中一个关系从一个站点传到另一个站点。

例如在站点2执行连接操作,相应传输代价为:T 连=C 0+C 1*size(R)*card(R)其中size(R)和card(R)分别为关系R 中元组的长度和元组的个数。

在一般情况下,card(R)>>card(R ’)是成立的,即T 半<< T 连成立,因此半连接程序法的传输代价较小,采用半连接程序执行连接操作是合适的。

对于复杂的连接查询,即多关系的连接,则可能存在多种半连接方案,而其中总有一个方案最佳。

采用半连接算法优化连接查询的步骤如下:① 计算每种可用的半连接方案的代价,并从中选择一个最近方案;② 计算采用连接方案的代价;③ 比较两种方案,确定最优方案。

3.3.4 SDD_1算法由美国计算机公司1978年研制的SDD_1是分布式数据库管理系统的第一个样机,该系统采用的分布式查询方法是多关系半连接算法。

在介绍SDD_1算法前,首先介绍选择因子及半连接的收益分析有关概念。

定义1 设R 、S 是两个关系,R 和S 半连接选择因子记为:SF sj (R ∝S)=card(()a S π)/card(S) [3]其中card(()a S π)是关系S 在关系R 和S 的公共属性a 上投影所包含的不同元组的个数,card(S)是关系S 的元组个数。

定义2 半连接代价公式记为:cost(R ∝S)=size(()a S π)=card(()a S π)*length(a) [3]其中length(a)是属性a定义的长度(字节数);半连接效益公式记为:benefit(R∝S)=(1-SF sj(R∝S))*size(R) [3]其中size(R)表示关系R的大小(字节数);有益半连接:benefit(R∝S)-cost(R∝S)>0的半连接;最有益半连接:多个半连接中,benefit(R∝S)-cost(R∝S)结果最大的半连接。

SDD_1查询优化算法大致思想是通过反复的获得有益半连接运算,减少每个站点上用于连接运算的数据,然后将所有站点的数据汇集到数据量最大的站点做最后装配。

处理过程主要包括三个步骤:⑴初始化:从全部关系中的半连接中生成有益的半连接集合;⑵选择有益的半连接:从有益的半连接集合中找出最有益的半连接,将其添加到执行策略中,并相应地修改被影响关系的统计值(选择因子,关系的大小等);⑶选择组装场地:重复第一步,直到所有有益的半连接加入到执行策略中,关系经上面步骤缩减后,选择存储数据量最大的站点为组装场地;为了便于说明和分析SDD_1算法,下面特举例说明。

相关文档
最新文档