当前位置:文档之家› 系统优化技术

系统优化技术

SDD-1 算法原理
上个世纪,美国计算机公司实现的SDD-1 是世界第一套分布式数据库系统,虽然在之后又出现了很多不同版本的分布式数据库系统,但大多数都是建立在此模型基础之上。

该系列的分布式数据库系统查询技术就是采用半连接操作技术,为了纪念该成果,后来人们将该系列分布式数据库中查询算法定义为分布式数据库SDD-1 查询算法,在详细介绍SDD-1 查询算法之前,先引入以下概念:
定义1 设有关系R和S,半连接操作R∝S的选择因子有以下公式:
其中card(πa(S))是以R和S的公共属性a对S做投影操作后的元组个数,其
card(S)是关系S的元组个数。

定义2设有关系R和S,半连接操作R∝S的效益有以下公式:
其中size(R)代表R的大小(以字节为单位)。

定义3 设有关系R和S,半连接操作R∝S的费用开销公式:
结果为真那么称此半连接R∝S为有益半连接。

定义5 最有益半连接:在定义4 的多个有益半连接中,
结果值最大的有益半连接称最有益半连接。

SDD-1 查询算法通过循环迭代获得最有益半连接,每次获得最有益半连接都
减少了网络数据传输量,最后选择数据量最大的站点作为数据装备站点。

SDD-1
查询算法在执行时主要分两部分:首先执行基本算法,然后执行后优化算法。


基本算法中,首先统计各半连接的效率、收益、费用等信息,利用这些统计信息
给出半连接缩减程序集,最后得出执行策略;在后优化算法中,修正基本算法得
出的执行策略,使最后的执行策略更高效。

SDD-1 查询基本算法是[24,27,42]:
首先根据查询语句及分布式数据库数据字典得出一个查询图G。

第一步: 对半连接静态特性表中的所有半连接进行收益值估算。

第二步:排序所有半连接的收益值,并选择该值最大的半连接执行
第三步:根据第二步执行的结果更新半连接静态特性表,并重新估算收益值。

第四步:判断半连接静态特性表中所有半连接是否执行完,如执行完转第五
步,如没有执行完转第二步循环执行。

第五步:选取对所有关系经过缩减后的基数(行数)最大所在的站点作为数据
装配站点,并将其他数据传输到该站点进行最后的数据装配。

SDD-1 查询后优化算法是:
第一步:判断基本算法中最后一次执行半连接操作所在站点是否为发出查询
站点,若为同一站点,则此次半连接操作可取消执行。

第二步:如果查询所涉及关系存在选择操作,应在基本算法开始之前尽可能
执行,因为选择操作会缩减关系基数,有利于基本算法中的半连接开销。

SDD-1 算法
连接操作是影响分布式查询效率的最关键因素。

而当前对于连接操作的优化,有两种趋势:一种是采用一种半连接技术来减少连接操作的操作数,以降低通讯费用;另一种是直接进行连接操作的代价计算,不采用半连接技术。

前者主要是为了最少化传输代价,而后者为了最少化局部代价。

对于代价,分布式数据库系统查询优化有两种不同的目标,一种是一种是以总代价为最少,另一种是以查询响应时间最短为标准。

对于分布式数据库系统,后者的意义更大。

基于以上考虑,SDD-1算法采用了半连接程序处理连接操作。

它的查询优化就是对逻辑关系时用基本的运算(如选择,投影,半连接)操作来缩减。

SDD-1算法是基于HillClimbing 算法而形成的。

它有五个主要的特征,首先,采用半连接是最主要的,其次,各个局部站点没有重复,也不进行分片。

此外,在它的代价计算中,不考虑最后一个长地传送代价。

这是由于在它的查询策略中,当时用半连接来缩减操作数关系的基数,当最大限度地缩减以后,把所有关系送到可执行查询的场地上,这个场地不一定是查询所要求的结果场地。

最后它还能同时最小化总时间和响应时间。

SDD-1算法由两部分组成:基本算法和后优化。

基本算法是根据评估所缩减程序的费用,效率,收益估算等几个因素,给出全部的半连接缩减程序集,决定一个最有益的执行策略,但效率不一定理想。

主要包括三个基本步骤(一)初始化:已准备好从查询数转换的优化模型,且所有关系已完成局部缩减。

(二)优化:①根据初始条件,构造可能的半连接缩减程序,②按半连接缩减程序的静态特性表,分别计算其代价和产生的益处,从其中选取一个半连接程序,设为S;③以S完成缩减以后,又用重新产生的一组新的静态特性表再进行计算,再从其中选取一个合适的半连接程序,但每一个都只做一次。

④循环下去,直到没有半连接缩减程序为止。

(三)结束:以最后一次缩减关系的静态特性表为基础,进行费用计算,选择场地。

后优化是将基本算法得到的解进行修正,已得到更合理的执行策略。

包括两种修正,一种是如果最后一次半连接程序缩减关系的所在场地恰好是被选中的执行场地,则最后一次半连接可以取消。

另一种修正是在基本算法的流程图进行修正,因为某一个半连接缩减程序的代价可能很高,就必须修正半连接的操作序SDD-1算法支持关系数据模型。

全局关系能以两个步骤分段(首先水平分段,然后垂直分段),能以冗余方式存储各段。

SDD-1能提供段存储透明性(用户不知道段和段的分配)利用数据语言,即适用于数据计算机的高级过程语言实现关系控制。

SDD-1算法的体系结构是基于三个相对独立的虚拟机:数据模块、事务处理模块和可靠的网络。

这种体系结构允许把分布式数据库管理问题分成三个系统,以限制相互的影响。

同样,SDD-1中的事务处理的执行是基于能使事务处理管理问题各不相同和在不同阶段设解决问题的原理。

事务处理的执行分成三个阶段:读、执行和写。

每个阶段涉及一个单独的问题:读阶段涉及并发控制,执行阶段涉及分布式查询的执行,写阶段涉及在已经修改过的数据的所有副本上执行更新。

把事务处理变换成关系代数表达式,叫外壳。

外壳定义足以执行数据语言事务处理的数据库部分。

外壳一般包含事务处理所要求的数据集。

然后,SDD-1进
行查询优化。

查询优化旨在为在一个地点上收集外壳确定最佳的访问计划。

优化是在外壳上,而不是在初始事务处理上实现的。

SDD-1算法存在一个严重问题,那就是它的算法的复杂性。

当元组数目很大时,进行查询搜索的代价进迅速增加,使系统无法承受。

当然,对于这种搜索模式,可以找到最佳的路经去进行查询。

为此,我们在此基础上对它进行改进,降低它的时间复杂度。

在人工智能里面的A*算法可以引入到SDD-1算法中来,当元组数目不是很大时,可以采用A*算法的思想对它进行查询优化,在此基础上能找到最优的方法去进行路径搜索和优化,而当元组数目非常多的时候,还是用以前的方法。

5 .分布式数据库系统的查询处理是用户与分布式数据库系统的接口,查询处理策略的好坏直接影响到系统地执行速度,所以,分布式数据库系统的查询处理优化是分布式数据库系统主要研究问题之一。

由于它的建立环境复杂,技术内容丰富,对于查询优化技术,还有许多问题有待进一步研究和解决。

随着计算机网络技术的飞速发展,相信分布式数据库技术也必将得
到迅速发展,并日趋完善。

相关主题