当前位置:文档之家› 分布式数据库查询系统的优化探讨

分布式数据库查询系统的优化探讨

分布式数据库查询系统的优化探讨摘要:随着数据存储的分布性需求日益广泛,对分布式数据的管理和访问就成为数据库技术必须解决的问题。

本文主要论述分布式数据库查询的概念特点,分布式数据库查询优化技术,并从它的优化技术进行深入探讨,对系统实现做了一定的论述,并进行了部分的程序实现。

关键词:分布式数据库查询系统优化引言分布式数据库是在上世纪7o年代中期,随着各企业、团体和单位对数据库更广泛地使用以及数据库技术和计算机网络发展成熟而产生的。

由于分布式数据库克服了集中式数据库的许多缺点,并且自然地适应于许多单位地理上分散而逻辑上统一的组织结构,因此,多年以来从理论到实践都得到了迅速发展,并取得了决定性成果。

分布式数据库是一个逻辑上完整而物理上分散在若干台互相连接着的计算机上的数据库系统,各组件分布在网络的各个节点上,依靠特定的更新和检索机制进行数据库分布,数据库的所有性能都会显著增强。

1.分布式数据库查询的定义和特点1.1 分布式数据库查询的定义分布式数据库系统(distributed data base system,ddbs)是物理上分布而逻辑上集中的数据库系统。

物理上分布是指分布式数据库系统中的数据分布在由网络连接起来的、地理位置分散的不同站点上;逻辑上集中是指各数据库站点之间在逻辑上是一个整体,并由统一的数据库管理系统进行管理,同时各站点又具有管理本地数据的能力。

分布式数据库系统有两个重要的组成部分:分布式数据库(distributed data base,ddb)和分布式数据库管理系统(distributed data base management system,ddbms)。

分布式数据库是计算机网络中各站点上数据库的逻辑集合。

也就是分布式数据库是一组结构化的数据集合,在逻辑上属于同一个系统,在物理上分布在计算机网络的不同站点上,是集中与分布的统一。

1.2分布式数据库查询的特点根据分布式数据库系统的定义,分布式数据库系统具有如下四个基本特点:(1)物理分布性。

数据不是存在一个站点上,而是存储在计算机网络的多个站点上。

(2)逻辑整体性。

数据物理分布在各个场地,但逻辑上是一个整体,它们被分布式数据库系统的所有数据物理分布在各个场地,它们被分布式数据库系统的所有全局用户共享,并由一个分布式数据库管理系统统一管理。

这是分布式数据库系统的逻辑整体性特点,也是与分散式数据库系统的最大区别。

(3)站点自治性。

各站点上的数据由本地的分布式数据库管理系统管理,具有自治处理能力,完成本场地的应用(局部应用)。

(4)站点间协作性。

各站点虽然具有高度的自治性,但是又相互合作构成一个整体。

对全局用户来说,使用分布式数据库系统如同集中式数据库系统一样,用户可以在任何一个站点执行全局应用。

2.分布式数据库查询优化的目标与方案2.1优化的目标分布式查询系统的优化目标一般有两种:一是使网络数据传输量最小,一是使响应时间最短。

与集中式的数据库系统相比,网络的传输速度与计算机内部的数据传输速度一般相差几个数量级,因此查询的局部处理时间与节点之间数据传输的时间相比,几乎可以忽略不计。

而过多的网络传输可能会给网络造成比较大的负担。

因此,减少网络数据传输量成为分布式查询处理的主要问题。

因此,分布式查询处理常常以减少网络间传递的数据量作为优化目标。

2.2查询优化技术方案分布式数据库研究的主要目标之一是隐藏分布式环境的细节,使系统用起来更加简单、有效。

关系数据模型可以为集中式数据库提供一个数据无关的接口。

关系数据库语言是关系演算,使用该语言进行数据查询时,只需对要查询的数据进行简单的描述,而无须说明如何获取这些数据,sql语言就是其中之一。

查询优化器的主要任务是控制和加快查询的执行和数据的传输过程。

查询优化器(如下图)首先以查询的某种表示作为输入,这种表示是查询处理器的语法分析子模块的输出,查询优化器为查询选择一种适当的数据存取策略。

dbms组成中对于用户所观察到的数据库性能影响最大的是查询处理器。

查询处理器分为两个部分:查询编译器和执行引擎。

(1)查询编译器,它将查询翻译成一种内部形式,称作查询计划。

查询计划是要在数据上执行的一系列操作。

通常查询计划中的操作是“关系代数”的实现。

(2)执行引擎,它负责执行选中的查询计划中的每一步。

执行引擎与dbms中大多数的其他成分都有交互,或直接交互,或通过缓冲区间接交互。

3.分布式查询优化的技术实现3.1 术语定义全局优化:指分布式数据库系统中,根据各节点的资源状况和处理能力进行,从整体的角度进行的优化。

全局代价信息表:用于分布式数据库全局查询优化所需的信息,记录系统中各个节点的查询时的代价以及负载统计情况。

表操作代价:是指对表的各种查询的操作代价除以磁盘输入输出的数据量的平均,即各种查询的磁盘输入输出数据的单位数据的代价的平均。

信息中心字典:指记录数据库信息和全局代价信息表,以两级索引存储。

3.2 功能模块及程序描述整个优化部分分为八个小模块:系统接口,全局信息收集,信息中心字典,信息更新,信息广播,优化信息统计,全局优化器,分发和连接处理。

(1)系统接口与全局信息收集本模块是为下面全局信息的获取提供方便统一的调用接口。

主要收集系统中所有数据库及表的信息,查询执行时间。

数据库的状态包括数据库的新建和删除,数据库的忙闲;表的状态也包括表的创建和表的删除,表的忙闲,表得大小.其中,数据库的忙闲从统计得出,表忙用在某个表的等待客户数(线程数)来度量。

(2)信息中心字典信息中心字典是本优化程序的一个枢纽,它记录了所有优化工作所需的重要信息,在系统运行期间常驻内存。

它实质上是实现了一个多级索引顺序表,即一级索引:数据库索引,放置了分布式系统中活动的所有数据库;二级索引:表索引,放置了各个活动数据库的所有表;顺序代价信息表,存放了各个表在系统中各个活动节点上的最近一段时间的代价信息。

关键数据结构:●数据库名索引表项结构:typedef struct dbnamelndex node{ char[name_maxmize]dbnarne;//数据库名bool stateflag;//分布式数据库系统中某个数据库的状态:0,表示不可用;1,表示正常可用unsigned long tablepos;//该数据库所属各表在第二级索引表的起始位置unsigned int offsize;//该数据库的所有表的数量} dbindex●表名索引表项结构:iypedef struct tablenamelndex node{ char[name_maxmize]tablenarne;//表名bool stateflag;// 该数据库的某个表的状态:0,表示不可1,表示正常可用unsigned longcostpos;// 该表的所属的各个节点上的代价在顺序代价表的起始位置unsigned int ofsize;//该表的所属的各个节点上的代价项的数目float tablesize;//该表的存储空间的大小float statiscost;//某一时刻,本节点上该表的统计累计值unsigned long statnum;//某一时刻,本节点上该表的统计次数} tableindex●顺序代价表表项结构typedef struct ordercostlistnode{ costinfo costltem;//代价信息bool stateflag;// 某个表在某个节点上代价的状态:0,表示不可用:1,表示正常可用} costinfo(3)优化信息统计这是本优化程序的核心部分,是优化信息的重要来源。

它记录每一次查询的执行代价,以及表的当前的客户数(线程数)。

然后将其信息组装成代价信息结构(上面的costinfo),并通过索引信息中心字典,将该信息统计相应的表项。

(4)信息更新当优化信息统计了一段时间片后,得出了最近一段时间内某数据库的某表在本节点的平均代价,它代表该表当前和最近的查询代价,要使它为以后的查询提供优化执行的参考,就必须将其更新到信息中心字典去,才能得到有效使用。

(5)信息广播信息广播的作用是将一定时期内,将“系统认为”值得更新到其它节点的本节点的查询性能和信息状况,通知到系统中的其它节点,以便进行全局优化选择。

由于本系统的网络环境是局域网,而局域网的通信状况较好,延时性和不可预测性都较小,所以,本文采用广播的方式通知其它节点。

(6)全局优化器全局优化器是一个关键环节,前面做的所有优化工作在这里得到体现。

它根据信息中心字典的关于某个数据库的某个或多个表的代价进行比较或计算得出一个当前最优的执行节点。

4.总结分布式数据库系统的查询优化的发展空间很大,它随着各个分布式数据库系统的架构的特点而优化考虑的重点会不同。

比如,建构在广域网络中的异构分布式数据库系统,优化可能更多的着眼于广域网的通信情况和异构数据库的特点。

本文在分析了分布式数据库系统优化技术的基础上,对分布式查询的全局处理进行了优化的探讨,并在dpsql数据库模型上进行了设计和实现。

参考文献:[1]贾焰,王志英,韩伟红,李霖. 分布式数据库技术. 北京:机械工业出版社,2005[2]邵佩英. 分布式数据库系统及其应用. 北京:科学出版社,2004。

相关主题