- 1 -
分布式数据库的查询优化研究
王欣
中国矿业大学,江苏徐州(221116)
摘 要:本文首先介绍了分布式数据库的机制和特点,并介绍了分布式查询的步骤。然后探
讨了分布式查询优化的目标,指出在分布式数据库系统中进行查询优化的最终目标就是尽量
使总代价最小和使查询响应时间最短。接着,文中介绍了一系列的分布式数据库系统查询的
优化方法和策略以及各自的使用特点。
关键词:分布式数据库;查询;优化
1. 引言
随着科学技术的进步和生产生活的各行各业中业务量的不断加大,数据库的结构日趋复
杂,因此,与之相关的各种数据库管理系统必须要不断完善自身的性能才能更有效地解决数
据的存储和处理问题,才能更好地满足日益增大的信息查询要求。如果能合理选择有效的优
化策略和方法则可以很好解决以上问题。[12]
分布式数据库(Distributed Database, DDB)是物理上分散在计算机网络各结点上, 而逻辑
上属于同一个系统的数据集合, 其具有数据独立性、集中与自制相结合的控制机制、事务管
理的分布性等特点。同时分布式数据库系统还要适当增加数据冗余来提高系统的可靠性、可
用性和改善系统性能。这样,由于数据的物理分布和冗余, 使得分布式数据库系统查询处理和
集中式数据库系统相比, 增加了许多新的内容和复杂性, 因此分布式查询处理的优化显得特
别的重要。[10]分布式数据库技术是分布性与集中性的统一。分布性表现在数据在网络中是
跨结点物理存储的,集中性表现在用户逻辑上所见到的是一个简单的、同构的数据库。[11]
2. 分布式查询处理步骤
与管理单个数据库系统的需要逻辑上和物理上达到双重集中的集中式数据库管理系统
所不同的是,分布式数据库管理系统需要管理多个数据库系统。所以,对分布式数据库的查
询不能像集中式数据库那样仅仅涉及一个站点而必须涉及多个服务器(全局查询)。在查询
过程中,必须要对全局查询进行分解,即将一个涉及多个数据服务器的全局查询转换成为多
个金仅涉及一个数据服务器的子查询。注意这里的全局查询和子查询均是由全局查询表示
的。查询分解完成后,再进行查询转换处理。分布式的数据库系统的查询处理通常分为查询
分解,数据本地化,全局优化和局部优化四个部分。
(1) 查询转换:将查询问题转换成为一个定义在全局关系上的关系代数表达式,然后进
行规范化、分析、删除冗余和重写。
(2) 数据本地化:将在全局关系上的关系代数式转换到相应段上的关系表达式,产生查
询树。
(3) 全局优化:使用各种优化算法和策略可以对查询树进行全局优化。不同的算法和策
略能够造成不同的优化结果,因此,算法的选取和策略的应用非常重要。
(4) 局部优化:分解完成后要进行组装,局部优化是指在组装场地进行的本地优化。
3. 分布式查询优化的目标
在分布式查询优化中通常使用总代价,即处理分布式数据库中不同站点之间的查询操作
- 2 -
以及站点间通信的所有时间的总和,进行资源耗费情况的衡量。另一种常用的衡量标准是查
询时的响应时间。而在分布式数据库系统中进行查询优化的最终目标就是尽量使总代价最小
和使查询响应时间最短。
(1) 总代价:在分布式数据库系统中,除了包括在集中式数据库中的 CPU 代价和 I/O 代
价(合称为局部处理代价)之外,由于数据分布在不同的结点上,在数据查询处理
中还需要考虑到站点间传输数据的通信代价,因此,总代价=CPU 代价+I/O 代价+
通信代价。
(2) 响应时间:指从接收查询到完成查询的时间间隔。在分布式数据库系统中,响应时
间既与通讯时间有关,又与局部处理时间有关。
在许多低效的通信网络中,通信代价常常是总代价的主要影响因素,而局部处理代价影
响非常小,甚至可以忽略计算。但在目前高速的通信网络中,传输时间比局部处理时间要短,
局部处理代价往往不可以忽略,常用响应时间作为优化准则,于是总代价的研究也多致力于
三部分的加权组合上。
图 1 查询优化的组织结构
4. 分布式查询优化的方法
基于索引的优化
如能在数据库提桶中建立合适的索引则可以避免表扫描并减少因查询而造成的 I/O 开
销,从而提高数据库数据查询的速度并改善数据库的性能。但由于创建索引会占用部分的系
统的时间和空间的开销,因此因该选取合适的索引创建方法。比方在经常进行连接但是没有
指定为外键的列上建立索引而不经常连接的字段则由 DBMS 的查询优化器自动生成索引。
在条件表达式中经常使用的且不同值多的列上建立索引,而在不同值少的列上则不要建立。
若待排序的列不止一个,则可以考虑在这些列上建立复合索引。此外,为了简化和避免对大
型表进行不必要的重复的排序,也应正确地增建索引,合理合并数据库表。当能够利用索引
自动以适当的顺序产生输出时,优化器就可以避免排序了。
基于临时表的优化
当一个表中数据量非常大的情况下,如把表中的一个子集进行排序并创建临时表,有时
语法分析
与翻译器 查询语句 关系代数表达式
优化器
执行计划 执行引擎
数据
查询输出
数据字典 统计数据
- 3 -
可以提高速度,避免了多重排序的操作,在一些方面能够简化优化器工作,从而达到优化查
询的目的。在使用中需要注意的是,临时表创建后并不能反映主表的修改,在主表中的数据
修改频繁的情况下应尽量保证数据不要丢失。
基于关系代数等价变换的优化
首先把查询内容转化为关系代数表达式,经过分析得到查询树,然后将原始查询树经过
从全局到片段的变换变成了基于片段的查询树,最后经过一系列的基于关系代数等价变换规
则的优化算法的转化,使该查询树中选择和投影操作尽可能靠近叶结点,笛卡儿乘积运算尽
可能远离叶结点,这样就可以减少操作量和操作次数,从而达到查询优化的目的。
基于语义信息的优化
语义查询是利用数据库的完整性约束定义把初始的查询转化为一个语义等价的,但是处
理代价更小的查询。与一般的查询处理过程所不同的是,基于语义信息的查询处理扩展了传
统的数据字典,在 IDB(Intelligent Database)中加入了新的语义信息规则,增添了语义优化
过程。使用这种方法不仅可以提高查询的效率并且可把一般查询对于非索引属性的检索转变
成为一个对索引属性的检索。但是又存在着增加处理时间的不足。在查询数据量较大的分布
式数据库中宜于使用该算法。
图 2 语义查询处理过程
查询语法
语法分析
查询树生成
分解定位
分解定位
查询树化简一
阶逻辑演算
一元操作下移
确定最优处理策
略产生执行计划
结果
I
D
B
- 4 -
尽量避免相关子查询
要尽量少用子查询,特别是相关子查询,因为这样会使效率降低。如果一个列的标签同
时在主查询和 where 子句中的查询中出现,那么当主查询的列值改变之后,子查询也要重新
查询一次,由此可以想见,查询嵌套的层次越多,子查询响应的改动就越频繁,查询的效率
也就越低,因此应尽量避免子查询。如必须使用,则应在子查询中尽可能多过滤一些行。
尽量避免 order by 和 group by 子句
首先,group by 或 order by 子句中列的次序和索引的次序不一样,若大型表采用排序办
法,则效率会大大降低。此外,这两个子句会占用大量的临时空间。对使用该子句的查询进
行测试,结果表明,这两个子句使查询速度很慢。如必须使用,则应用视图、人工生成临时
表的方法来代替。
其它优化方法
除了以上几种方法,还可以通过消除对大型表行数据的顺序存取,优化 where 子句,把
查询分解执行,避免困难的正规表达式如 MATCHES 和 LIKE 关键字支持的通配符匹配等方
法进行数据库的查询优化。
5 结束语
除了文中介绍的几种方法之外,还有基于连接、半连接的查询优化算法,基于 Agent
的分布式算法、基于遗传算法的查询优化、基于模拟退火的查询优化算法、基于收益代价比
因子的贪心算法、带碎片的分布式查询处理、基于神经网络技术的异构数据库集成查询、基
于多元线形回归的统计决策机制、基于值的查询优化算法、基于粗糙集的查询优化、基于事
先测试的优化技术、启发式算法等等。但是,任何好的算法和策略不能适用于所有的查询优
化,因此在实际应用中我们必须考虑该方法是否能适用于大数据量,能否应付异构数据库的
要求,是否全局优化,是否满足高复杂性的要求等,才能决定是否使用该方法以及如何恰当
地进行使用。
参考文献
[ 1 ]邵佩英. 分布式数据库系统及其应用[M ]. 北京: 科学出版社, 2000.
[ 2 ]萨师煊, 王 珊. 数据库系统概论[M ]. 北京: 高等教育出版社, 2000.
[ 3] (美)N ils J. N ilsson. 人工智能[M ]. 郑扣根译. 北京: 机械工业出版社, 2000.
[ 4 ]刘冰, 李正凡. 基于分布式数据库系统的一种查询优化算法[J ]. 北京联合大学学报, 2005, 19 (1) : 51-
54.
[ 5 ]张宋传, 陈瑞典. 分布式数据库中多元连接查询优化的研究[J ]. 微计算机应用, 2005, 26 (4) : 391- 392.
[ 6 ]陈建荣, 叶天荣. 分布式数据库设计导论[M ]. 北京: 清华大学出版社, 1993.
[7]刘洋, 等. 基于访问控制的数据库安全模型的比较研究综述[J ]. 渤海大学学报: 自科学版, 2006, 27 (4) :
379- 382.
[ 8 ] 郑振楣, 于 戈. 分布式数据库[M ]. 科学出版社, 1999.
[ 9 ] 刘兵, 郭福亮. 基于分布式数据库系统查询优化策略的研究[ J ]. 计算机与数字工程, 2005, (12).
[10] 王燕飞. 谈分布式数据库查询优化[J].电脑知识与技术,2007,(09).
[11]刘汝正. 谈基于分布式数据库的查询优化处理算法[J].科学技术与工程,2007,(10).
[12]龙海燕,霍跃军.数据库的查询优化研究[J]. 电脑知识与技术,2006,(10).
- 5 -
Research on Query Optimization in Distributed
Batabase
Xin Wang
China University of Mining and Technology,Xuzhou,Jiangsu(221116)
Abstract
In the paper, the mechanism and characteristics of distributed database are introduced and the steps
using in consult of distributed database are provided. Then the purpose of distributed query
optimization is discussed. The paper also indicates that the final purpose of query optimization is to
reduce the total cost or the query response time to the lowest lever. Then a series of query optimization
methods and strategies in distributed database system as well as their characteristics.
Keywords: distributed database; query; optimization
<<
/ASCII85EncodePages false
/AllowTransparency false
/AutoPositionEPSFiles true
/AutoRotatePages /All
/Binding /Left
/CalGrayProfile (Dot Gain 20%)
/CalRGBProfile (sRGB )
/CalCMYKProfile (. Web Coated \050SWOP\051 v2)
/sRGBProfile (sRGB )
/CannotEmbedFontPolicy /Warning
/CompatibilityLevel
/CompressObjects /Tags
/CompressPages true
/ConvertImagesToIndexed true
/PassThroughJPEGImages true
/CreateJDFFile false
/CreateJobTicket false
/DefaultRenderingIntent /Default
/DetectBlends true
/ColorConversionStrategy /LeaveColorUnchanged
/DoThumbnails false
/EmbedAllFonts true
/EmbedJobOptions true
/DSCReportingLevel 0
/EmitDSCWarnings false
/EndPage -1
/ImageMemory 1048576
/LockDistillerParams false
/MaxSubsetPct 100
/Optimize true
/OPM 1
/ParseDSCComments true
/ParseDSCCommentsForDocInfo true
/PreserveCopyPage true
/PreserveEPSInfo true
/PreserveHalftoneInfo false
/PreserveOPIComments false
/PreserveOverprintSettings true
/StartPage 1
/SubsetFonts true
/TransferFunctionInfo /Apply
/UCRandBGInfo /Preserve
/UsePrologue false
/ColorSettingsFile ()
/AlwaysEmbed [ true
]
/NeverEmbed [ true
]
/AntiAliasColorImages false
/DownsampleColorImages true
/ColorImageDownsampleType /Bicubic
/ColorImageResolution 300
/ColorImageDepth -1
/ColorImageDownsampleThreshold
/EncodeColorImages true
/ColorImageFilter /DCTEncode
/AutoFilterColorImages true
/ColorImageAutoFilterStrategy /JPEG
/ColorACSImageDict <<
/QFactor
/HSamples [1 1 1 1] /VSamples [1 1 1 1]
>>
/ColorImageDict <<
/QFactor
/HSamples [1 1 1 1] /VSamples [1 1 1 1]
>>
/JPEG2000ColorACSImageDict <<
/TileWidth 256
/TileHeight 256
/Quality 30
>>
/JPEG2000ColorImageDict <<
/TileWidth 256
/TileHeight 256
/Quality 30
>>
/AntiAliasGrayImages false
/DownsampleGrayImages true
/GrayImageDownsampleType /Bicubic
/GrayImageResolution 300
/GrayImageDepth -1
/GrayImageDownsampleThreshold
/EncodeGrayImages true
/GrayImageFilter /DCTEncode
/AutoFilterGrayImages true
/GrayImageAutoFilterStrategy /JPEG
/GrayACSImageDict <<
/QFactor
/HSamples [1 1 1 1] /VSamples [1 1 1 1]
>>
/GrayImageDict <<
/QFactor
/HSamples [1 1 1 1] /VSamples [1 1 1 1]
>>
/JPEG2000GrayACSImageDict <<
/TileWidth 256
/TileHeight 256
/Quality 30
>>
/JPEG2000GrayImageDict <<
/TileWidth 256
/TileHeight 256
/Quality 30
>>
/AntiAliasMonoImages false
/DownsampleMonoImages true
/MonoImageDownsampleType /Bicubic
/MonoImageResolution 1200
/MonoImageDepth -1
/MonoImageDownsampleThreshold
/EncodeMonoImages true
/MonoImageFilter /CCITTFaxEncode
/MonoImageDict <<
/K -1
>>
/AllowPSXObjects false
/PDFX1aCheck false
/PDFX3Check false
/PDFXCompliantPDFOnly false
/PDFXNoTrimBoxError true
/PDFXTrimBoxToMediaBoxOffset [
]
/PDFXSetBleedBoxToMediaBox true
/PDFXBleedBoxToTrimBoxOffset [
]
/PDFXOutputIntentProfile ()
/PDFXOutputCondition ()
/PDFXRegistryName ()
/PDFXTrapped /Unknown
/Description <<
/FRA <FEFF004f007000740069006f006e00730020007000650072006d0065007400740061006e007400200064006500200063007200e900650072002000640065007300200064006f00630075006d0065006e00740073002000500044004600200064006f007400e900730020006400270075006e00650020007200e90073006f006c007500740069006f006e002000e9006c0065007600e9006500200070006f0075007200200075006e00650020007100750061006c0069007400e90020006400270069006d007000720065007300730069006f006e00200061006d00e9006c0069006f007200e90065002e00200049006c002000650073007400200070006f0073007300690062006c0065002000640027006f00750076007200690072002000630065007300200064006f00630075006d0065006e007400730020005000440046002000640061006e00730020004100630072006f0062006100740020006500740020005200650061006400650072002c002000760065007200730069006f006e002000200035002e00300020006f007500200075006c007400e9007200690065007500720065002e>
/ENU (Use these settings to create PDF documents with higher image resolution for improved printing quality. The PDF documents can be opened with Acrobat and Reader and later.)
/JPN <FEFF3053306e8a2d5b9a306f30019ad889e350cf5ea6753b50cf3092542b308000200050004400460020658766f830924f5c62103059308b3068304d306b4f7f75283057307e30593002537052376642306e753b8cea3092670059279650306b4fdd306430533068304c3067304d307e305930023053306e8a2d5b9a30674f5c62103057305f00200050004400460020658766f8306f0020004100630072006f0062006100740020304a30883073002000520065006100640065007200200035002e003000204ee5964d30678868793a3067304d307e30593002>
/DEU <FEFF00560065007200770065006e00640065006e0020005300690065002000640069006500730065002000450069006e007300740065006c006c0075006e00670065006e0020007a0075006d002000450072007300740065006c006c0065006e00200076006f006e0020005000440046002d0044006f006b0075006d0065006e00740065006e0020006d00690074002000650069006e006500720020006800f60068006500720065006e002000420069006c0064006100750066006c00f600730075006e0067002c00200075006d002000650069006e0065002000760065007200620065007300730065007200740065002000420069006c0064007100750061006c0069007400e400740020007a0075002000650072007a00690065006c0065006e002e00200044006900650020005000440046002d0044006f006b0075006d0065006e007400650020006b00f6006e006e0065006e0020006d006900740020004100630072006f0062006100740020006f0064006500720020006d00690074002000640065006d002000520065006100640065007200200035002e003000200075006e00640020006800f600680065007200200067006500f600660066006e00650074002000770065007200640065006e002e>
/PTB <FEFF005500740069006c0069007a006500200065007300740061007300200063006f006e00660069006700750072006100e700f5006500730020007000610072006100200063007200690061007200200064006f00630075006d0065006e0074006f0073002000500044004600200063006f006d00200075006d00610020007200650073006f006c007500e700e3006f00200064006500200069006d006100670065006d0020007300750070006500720069006f0072002000700061007200610020006f006200740065007200200075006d00610020007100750061006c0069006400610064006500200064006500200069006d0070007200650073007300e3006f0020006d0065006c0068006f0072002e0020004f007300200064006f00630075006d0065006e0074006f0073002000500044004600200070006f00640065006d0020007300650072002000610062006500720074006f007300200063006f006d0020006f0020004100630072006f006200610074002c002000520065006100640065007200200035002e0030002000650020007300750070006500720069006f0072002e>
/DAN <FEFF004200720075006700200064006900730073006500200069006e0064007300740069006c006c0069006e006700650072002000740069006c0020006100740020006f0070007200650074007400650020005000440046002d0064006f006b0075006d0065006e0074006500720020006d006500640020006800f8006a006500720065002000620069006c006c00650064006f0070006c00f80073006e0069006e006700200066006f00720020006100740020006600e50020006200650064007200650020007500640073006b00720069006600740073006b00760061006c0069007400650074002e0020005000440046002d0064006f006b0075006d0065006e0074006500720020006b0061006e002000e50062006e006500730020006d006500640020004100630072006f0062006100740020006f0067002000520065006100640065007200200035002e00300020006f00670020006e0079006500720065002e>
/NLD <FEFF004700650062007200750069006b002000640065007a006500200069006e007300740065006c006c0069006e00670065006e0020006f006d0020005000440046002d0064006f00630075006d0065006e00740065006e0020007400650020006d0061006b0065006e0020006d00650074002000650065006e00200068006f0067006500720065002000610066006200650065006c00640069006e00670073007200650073006f006c007500740069006500200076006f006f0072002000650065006e0020006200650074006500720065002000610066006400720075006b006b00770061006c00690074006500690074002e0020004400650020005000440046002d0064006f00630075006d0065006e00740065006e0020006b0075006e006e0065006e00200077006f007200640065006e002000670065006f00700065006e00640020006d006500740020004100630072006f00620061007400200065006e002000520065006100640065007200200035002e003000200065006e00200068006f006700650072002e>
/ESP <FEFF0055007300650020006500730074006100730020006f007000630069006f006e006500730020007000610072006100200063007200650061007200200064006f00630075006d0065006e0074006f0073002000500044004600200063006f006e0020006d00610079006f00720020007200650073006f006c00750063006900f3006e00200064006500200069006d006100670065006e00200070006100720061002000610075006d0065006e0074006100720020006c0061002000630061006c006900640061006400200061006c00200069006d007000720069006d00690072002e0020004c006f007300200064006f00630075006d0065006e0074006f00730020005000440046002000730065002000700075006500640065006e00200061006200720069007200200063006f006e0020004100630072006f00620061007400200079002000520065006100640065007200200035002e003000200079002000760065007200730069006f006e0065007300200070006f00730074006500720069006f007200650073002e>
/SUO <FEFF004e00e4006900640065006e002000610073006500740075007300740065006e0020006100760075006c006c006100200076006f0069006400610061006e0020006c0075006f006400610020005000440046002d0061007300690061006b00690072006a006f006a0061002c0020006a006f006900640065006e002000740075006c006f0073007400750073006c00610061007400750020006f006e0020006b006f0072006b006500610020006a00610020006b007500760061006e0020007400610072006b006b007500750073002000730075007500720069002e0020005000440046002d0061007300690061006b00690072006a0061007400200076006f0069006400610061006e0020006100760061007400610020004100630072006f006200610074002d0020006a00610020004100630072006f006200610074002000520065006100640065007200200035002e00300020002d006f0068006a0065006c006d0061006c006c0061002000740061006900200075007500640065006d006d0061006c006c0061002000760065007200730069006f006c006c0061002e>
/ITA <FEFF00550073006100720065002000710075006500730074006500200069006d0070006f007300740061007a0069006f006e00690020007000650072002000630072006500610072006500200064006f00630075006d0065006e00740069002000500044004600200063006f006e00200075006e00610020007200690073006f006c0075007a0069006f006e00650020006d0061006700670069006f00720065002000700065007200200075006e00610020007100750061006c0069007400e00020006400690020007300740061006d007000610020006d00690067006c0069006f00720065002e0020004900200064006f00630075006d0065006e00740069002000500044004600200070006f00730073006f006e006f0020006500730073006500720065002000610070006500720074006900200063006f006e0020004100630072006f00620061007400200065002000520065006100640065007200200035002e003000200065002000760065007200730069006f006e006900200073007500630063006500730073006900760065002e>
/NOR <FEFF004200720075006b00200064006900730073006500200069006e006e007300740069006c006c0069006e00670065006e0065002000740069006c002000e50020006f00700070007200650074007400650020005000440046002d0064006f006b0075006d0065006e0074006500720020006d006500640020006800f80079006500720065002000620069006c00640065006f00700070006c00f80073006e0069006e006700200066006f00720020006200650064007200650020007500740073006b00720069006600740073006b00760061006c0069007400650074002e0020005000440046002d0064006f006b0075006d0065006e00740065006e00650020006b0061006e002000e50070006e006500730020006d006500640020004100630072006f0062006100740020006f0067002000520065006100640065007200200035002e00300020006f0067002000730065006e006500720065002e>
/SVE <FEFF0041006e007600e4006e00640020006400650020006800e4007200200069006e0073007400e4006c006c006e0069006e006700610072006e00610020006e00e40072002000640075002000760069006c006c00200073006b0061007000610020005000440046002d0064006f006b0075006d0065006e00740020006d006500640020006800f6006700720065002000620069006c0064007500700070006c00f60073006e0069006e00670020006f006300680020006400e40072006d006500640020006600e50020006200e400740074007200650020007500740073006b00720069006600740073006b00760061006c0069007400650074002e0020005000440046002d0064006f006b0075006d0065006e00740065006e0020006b0061006e002000f600700070006e006100730020006d006500640020004100630072006f0062006100740020006f00630068002000520065006100640065007200200035002e003000200065006c006c00650072002000730065006e006100720065002e>
>>
>> setdistillerparams
<<
/HWResolution [2400 2400]
/PageSize [ ]
>> setpagedevice