CN101739398A - 分布式数据库多连接查询优化算法 - Google Patents
分布式数据库多连接查询优化算法 Download PDFInfo
- Publication number
- CN101739398A CN101739398A CN200810159685A CN200810159685A CN101739398A CN 101739398 A CN101739398 A CN 101739398A CN 200810159685 A CN200810159685 A CN 200810159685A CN 200810159685 A CN200810159685 A CN 200810159685A CN 101739398 A CN101739398 A CN 101739398A
- Authority
- CN
- China
- Prior art keywords
- optimization
- relation
- join
- connection
- query optimization
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Images
Landscapes
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
一种数据库技术领域的查询优化算法,主要用于解决分布式数据库多连接查询优化问题。技术方案要点如下:1.对三元以上关系连接进行预优化,减少了关系连接的操作顺序优化的搜索空间;2.制定预处理规则,对预优化后的全部关系连接进行合并;3.加载数据库统计信息,估计各处理机的负载,以负载均衡和处理机间传输代价最小为目标,采用图分割方法将关系连接分配到多个处理机进行并行优化。本发明通过预优化多元连接减小了连接操作顺序优化的搜索空间,利用并行机制降低了优化子问题的规模,有效提高了多连接查询优化的效率。
Description
技术领域
本发明涉及数据库技术领域,具体地,涉及一种分布式数据库的三阶段多连接查询优化方法,该算法用于查询过程中多连接操作的优化,以提高查询效率。
背景技术
数据和信息在当今社会活动中越来越显示出其重要性,已经成为人类发展的一种极为重要的资源。分布式数据库是计算机网络与数据库技术相互协调、渗透发展起来的产物,它通过增加数据的冗余来提高系统的可靠性、可用性,但同时使得分布式查询处理更加复杂,因此分布式数据库的查询优化在分布式数据库技术中十分重要。
分布式查询处理具有能够通过通信网络存取远程站点的数据,以及在不同站点间传输请求和数据的能力。分布式查询优化的准则是使通信费用最低和响应时间最短,即以最小的总代价,在最短的响应时间内获得需要的数据。分布式查询处理由四个层次模式组成:
(1)查询分解:将查询问题转换成一个定义在全局关系上的关系代数表达式。
(2)数据本地化:把一个在全局关系上的查询进行具体化,落实到合适的片段上的查询,使尽可能做到本地化或近地化。
(3)全局优化:输入是分片查询,即在片段上的查询,其目标在于寻找一个近于最优的执行策略。
(4)局部优化:由拥有与查询有关的片段的各个站点执行,采用集中式数据库系统中查询优化的算法,所需信息取自局部模式。
由此可见,在分布式数据库系统中,查询优化包括两个内容:全局优化即查询策略优化、局部处理优化。查询分解和数据本地化已经通过消除冗余表达式、查询本地化或近地化等做了某些优化,全局优化即是提出分片查询的最佳操作次序,使得代价函数最小,代价函数一般是I/O、CPU和通信代价之和。
目前分布式查询的全局优化的策略和算法主要有三类:基于关系代数等价变换的查询优化处理,基于半连接算法的优化连接查询,基于直接连接算法的查询优化处理。基于半连接算法的优化连接查询经半连接操作,可减少操作关系的大小,从而减少站点间数据的传输量,达到优化目的,适于只考虑站点间的通信传输代价的大型广域网。在高速的局域网中,本地处理的代价也必须考虑在内,使用全连接是较合适的,查询优化策略就是去确定选择执行全连接的最佳方法。基于直接连接算法的站点依赖算法、分片和复制算法、站点依赖和数据复制算法,以及Hash划分算法等主要是使得连接操作的数据传送量最小(最好是无数据传送)和负载均衡,从而达到优化的目的。
全局查询优化的关键是如何选择操作的执行顺序,不同的查询算法,往往会使查询操作的执行效率产生很大的差异。对分布式查询处理,要充分利用处理的可并行性和对数据进行合理分布来优化查询处理,使得查询的费用最小。一个好的查询处理应该使数据的传输量和通信次数最少,并充分利用分布式的并行处理,从而减少查询的总代价和总的处理时间。
对于海量信息的查询和复杂查询,由于多元连接的存在使得当前查询算法的费用仍然很大。本发明在考虑通信代价和当地处理代价的情况下,以减少通信代价和提高响应速率为目标,提出分布式数据库的多连接查询优化算法。
发明内容
本发明的目的是针对分布式数据库中的多连接查询,提出一种三阶段的查询优化算法,该算法首先估计各连接的代价,并分别对多元关系连接进行预优化,确定多元关系连接的操作次序;然后根据连接间的代价将所有连接分配到多个处理器进行并行优化,尽量保证负载均衡;最后分别优化各处理器上的关系的连接顺序。
给定一个查询Q,经过查询分解和数据本地化,确定查询所用的片段及其你所在的站点。设Q涉及的关系为{R1,R2,…Rn},用连接图G表示这n个关系及关系之间可能的连接,图的顶点表示关系,边表示关系之间的连接,根据数据库统计信息,包括各站点片段统计信息、资源信息和通信信息等,预先估计关系的连接代价作为边的权值。在两表连接中,选择的驱动表不同,连接的代价也有差异,因为连接操作满足交换律和结合律,只是对于分布式数据库而言,不同站点间的数据需要传输,存在传输代价,因而这里连接图中边的权值由两表连接时使连接代价较小的连接方式所确定。根据边的权重,将各关系进行选择连接,形成一个不包含环的连通分量,即一棵查询树,就确定了连接的一个操作顺序。
假设有查询Q={(R1.A2,R2.A4)|(R1.A1=R2.A1)∧(R2.A1=R3.A1)∧(R3.A2=R4.A2)∧(R3.A3=R5,A3)},通过构造该查询的连接图可知,由该查询可以得到3个关系连接:在属性A1上R1∞R2∞R3,在属性A2上R3∞R4,在属性A3上R3∞R5。三个以上关系的连接如R1∞R2∞R3,有三种连接次序(见下图),本身存在一个最优连接次序。
因此本发明中首先对三个以上关系的连接进行预优化处理,选择最小代价的执行子顺序,减少全部关系连接的搜索空间,然后进行并行优化,并尽量保证负载均衡,从而提高查询的效率。
本发明方法具体如下:
步骤一:将查询中的关系连接按关系数目进行分类;
步骤二:加载数据库中的统计信息,预估关系的连接代价作为边的权值;
步骤三:三元以上连接的预优化;
步骤四:对全部关系连接进行预处理;
步骤五:连接操作的并行化,尽量保证均衡负载;
步骤六:并行地在各处理机上进行相应关系连接的操作顺序的优化。
流程如附图所示。
本发明方法中采用三阶段优化算法,首先通过对三元以上关系连接的预优化,减少了操作顺序优化的搜索空间;然后对预优化后的连接图制定了预处理规则,以均衡负载和处理机间传输代价最小为目标将连接划分到多个处理机进行并行处理;最后在各处理机上分别进行关系连接的操作顺序的优化。该方法减小了搜索空间、降低了优化问题的规模,从而提高了查询的效率。
附图说明
附图是本发明的流程示意图。
具体实施方式
以下对本发明的具体实施作进一步的描述:
步骤一:将查询中的关系连接划分为两类:二元关系连接、三元以上关系的连接;
步骤二:加载数据库中的统计信息,包括各站点片段统计信息、资源信息和通信信息等,预估关系的连接代价作为边的权值;
步骤三:预优化三元以上连接的操作顺序。确定各个三元以上连接的各自的最优操作顺序,这与集中式数据库中的查询操作相同,可以使用现有的有效策略和方法,并且可以并行处理;
步骤四:预处理规则:如果某三元以上连接只与另外的一个关系间存在连接操作,则将该三元连接与该关系合并成一个新的关系,但仍以该关系的名称命名,将预优化后的连接总代价记入后续的连接代价中;如果某三元以上连接中的某个或某几个关系与另外的关系间存在连接操作,则保留该关系,将其余关系并入这个或几个关系中,同样地,与其它关系进行连接时考虑预优化的连接代价;
步骤五:连接操作的并行化,尽量保证均衡负载。收集处理机的负载信息,以均衡负载和处理机间传输代价最小为目标,采用图分割方法将连接图G划分为多个子题,从而相应地将关系连接划分到多个处理机进行并行优化。
步骤六:采用集中式数据库查询优化的有效策略并行地在各处理机上进行相应关系连接操作顺序的优化。
本发明方法具有可行性和高效性,能够解决分布式数据库多连接查询优化问题。特别是本算法通过对三元以上关系连接的预优化,减少了操作顺序优化的搜索空间;然后按照预处理规则对连接图中的关系代表的顶点进行合并,并均衡地将它们分配到多个处理机进行并行优化,降低了优化子问题的规模。本发明有效提高了查询优化的效率,为分布式数据库的多连接查询优化提供了新的方法。
Claims (4)
1.一种分布式数据库多连接查询优化算法,其特征在于它通过如下步骤实现:(1)将查询中的关系连接划分为二元关系连接、三元以上关系的连接两类;(2)加载数据库中的统计信息,预估关系的连接代价作为边的权值;(3)利用集中式数据库查询优化方法,预优化三元以上连接;(4)利用预处理规则对三元以上连接的顶点进行合并;(5)收集处理机的负载信息,以均衡负载和处理机间传输代价最小为目标,采用图分割方法将全部关系连接划分到多个处理机进行并行优化;(6)采用集中式数据库查询优化的有效策略并行地在各处理机上进行相应关系连接操作的优化。
2.根据权力要求1所述的分布式数据库多连接查询优化算法,其特征在于步骤(1)和步骤(3)中将关系连接按元素数目进行分类,对三个以上关系连接进行预优化,减少了全部关系连接操作优化的搜索空间。
3.根据权力要求1所述的分布式数据库多连接查询优化算法,其特征在于步骤(4)中制定预处理规则,对预优化后的关系进行合并,减少了连接图中的顶点个数,从而降低了步骤(5)中并行划分的问题规模。
4.根据权力要求1所述的分布式数据库多连接查询优化算法,其特征在于步骤(5)和步骤(6)采用了并行机制,根据处理机的负载信息将关系连接均衡地划分到多个处理机上,分别进行关系连接操作顺序的优化,从而减小了子优化问题的规模、提高了查询的效率。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN200810159685A CN101739398A (zh) | 2008-11-11 | 2008-11-11 | 分布式数据库多连接查询优化算法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN200810159685A CN101739398A (zh) | 2008-11-11 | 2008-11-11 | 分布式数据库多连接查询优化算法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN101739398A true CN101739398A (zh) | 2010-06-16 |
Family
ID=42462892
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN200810159685A Pending CN101739398A (zh) | 2008-11-11 | 2008-11-11 | 分布式数据库多连接查询优化算法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN101739398A (zh) |
Cited By (13)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102467586A (zh) * | 2010-11-08 | 2012-05-23 | 复旦大学 | 用于集成电路设计的分布式并行最小代价流方法及装置 |
CN102541631A (zh) * | 2010-12-21 | 2012-07-04 | 国际商业机器公司 | 以多线程不同驱动源执行计划处理查询的方法和系统 |
CN103064955A (zh) * | 2012-12-28 | 2013-04-24 | 华为技术有限公司 | 查询规划方法及装置 |
CN103377236A (zh) * | 2012-04-26 | 2013-10-30 | 中兴通讯股份有限公司 | 一种用于分布式数据库的连接查询方法及系统 |
CN104298736A (zh) * | 2014-09-30 | 2015-01-21 | 华为软件技术有限公司 | 数据集合连接方法、装置及数据库系统 |
CN106250567A (zh) * | 2016-08-31 | 2016-12-21 | 天津南大通用数据技术股份有限公司 | 分布式数据库系统中表连接数据分布方式的选择方法及装置 |
CN103793467B (zh) * | 2013-09-10 | 2017-01-25 | 浙江鸿程计算机系统有限公司 | 一种基于超图和动态规划的大数据实时查询优化方法 |
CN106777054A (zh) * | 2016-12-09 | 2017-05-31 | 北京华胜信泰数据技术有限公司 | 半连接合并方法和半连接合并装置 |
WO2017157160A1 (zh) * | 2016-03-14 | 2017-09-21 | 阿里巴巴集团控股有限公司 | 数据表连接方式处理方法及装置 |
CN107229692A (zh) * | 2017-05-19 | 2017-10-03 | 哈工大大数据产业有限公司 | 一种基于流水线的分布式多表连接方法及系统 |
CN108399233A (zh) * | 2018-02-24 | 2018-08-14 | 山东汇贸电子口岸有限公司 | 一种基于算法的分布式数据库的查询优化方法 |
CN112424765A (zh) * | 2018-07-20 | 2021-02-26 | 皮沃塔尔软件公司 | 用于用户定义的函数的容器框架 |
CN112860738A (zh) * | 2021-04-23 | 2021-05-28 | 支付宝(杭州)信息技术有限公司 | 针对多方安全数据库的查询优化方法、装置和系统 |
-
2008
- 2008-11-11 CN CN200810159685A patent/CN101739398A/zh active Pending
Cited By (19)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102467586A (zh) * | 2010-11-08 | 2012-05-23 | 复旦大学 | 用于集成电路设计的分布式并行最小代价流方法及装置 |
CN102467586B (zh) * | 2010-11-08 | 2015-04-22 | 复旦大学 | 用于集成电路设计的分布式并行最小代价流方法及装置 |
CN102541631A (zh) * | 2010-12-21 | 2012-07-04 | 国际商业机器公司 | 以多线程不同驱动源执行计划处理查询的方法和系统 |
CN102541631B (zh) * | 2010-12-21 | 2014-07-02 | 国际商业机器公司 | 以多线程不同驱动源执行计划处理查询的方法和系统 |
CN103377236A (zh) * | 2012-04-26 | 2013-10-30 | 中兴通讯股份有限公司 | 一种用于分布式数据库的连接查询方法及系统 |
CN103377236B (zh) * | 2012-04-26 | 2018-02-16 | 中兴通讯股份有限公司 | 一种用于分布式数据库的连接查询方法及系统 |
CN103064955A (zh) * | 2012-12-28 | 2013-04-24 | 华为技术有限公司 | 查询规划方法及装置 |
CN103793467B (zh) * | 2013-09-10 | 2017-01-25 | 浙江鸿程计算机系统有限公司 | 一种基于超图和动态规划的大数据实时查询优化方法 |
CN104298736B (zh) * | 2014-09-30 | 2017-10-17 | 华为软件技术有限公司 | 数据集合连接方法、装置及数据库系统 |
CN104298736A (zh) * | 2014-09-30 | 2015-01-21 | 华为软件技术有限公司 | 数据集合连接方法、装置及数据库系统 |
WO2017157160A1 (zh) * | 2016-03-14 | 2017-09-21 | 阿里巴巴集团控股有限公司 | 数据表连接方式处理方法及装置 |
US11650990B2 (en) | 2016-03-14 | 2023-05-16 | Alibaba Group Holding Limited | Method, medium, and system for joining data tables |
CN106250567A (zh) * | 2016-08-31 | 2016-12-21 | 天津南大通用数据技术股份有限公司 | 分布式数据库系统中表连接数据分布方式的选择方法及装置 |
CN106777054A (zh) * | 2016-12-09 | 2017-05-31 | 北京华胜信泰数据技术有限公司 | 半连接合并方法和半连接合并装置 |
CN106777054B (zh) * | 2016-12-09 | 2020-03-27 | 北京华胜信泰数据技术有限公司 | 半连接合并方法和半连接合并装置 |
CN107229692A (zh) * | 2017-05-19 | 2017-10-03 | 哈工大大数据产业有限公司 | 一种基于流水线的分布式多表连接方法及系统 |
CN108399233A (zh) * | 2018-02-24 | 2018-08-14 | 山东汇贸电子口岸有限公司 | 一种基于算法的分布式数据库的查询优化方法 |
CN112424765A (zh) * | 2018-07-20 | 2021-02-26 | 皮沃塔尔软件公司 | 用于用户定义的函数的容器框架 |
CN112860738A (zh) * | 2021-04-23 | 2021-05-28 | 支付宝(杭州)信息技术有限公司 | 针对多方安全数据库的查询优化方法、装置和系统 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN101739398A (zh) | 分布式数据库多连接查询优化算法 | |
CN109564568B (zh) | 用于分布式数据集索引的装置、方法和机器可读存储介质 | |
US10581957B2 (en) | Multi-level data staging for low latency data access | |
US9805079B2 (en) | Executing constant time relational queries against structured and semi-structured data | |
CN110134714B (zh) | 适用于大数据迭代计算的分布式计算框架缓存索引方法 | |
CN103106249B (zh) | 一种基于Cassandra的数据并行处理系统 | |
US20200242167A1 (en) | Graph database super vertex partitioning | |
US20140214752A1 (en) | Data stream splitting for low-latency data access | |
CN107111653A (zh) | 适于并行数据库系统的系统内存负载的查询优化 | |
CN104111936B (zh) | 数据查询方法和系统 | |
WO2014117295A1 (en) | Performing an index operation in a mapreduce environment | |
CN105096174A (zh) | 一种交易匹配方法以及系统 | |
CN105550332B (zh) | 一种基于双层索引结构的起源图查询方法 | |
Madan et al. | k-DDD measure and mapreduce based anonymity model for secured privacy-preserving big data publishing | |
CN107341210A (zh) | Hadoop平台下的C‑DBSCAN‑K聚类算法 | |
US9020954B2 (en) | Ranking supervised hashing | |
Zhang et al. | Efficient processing distributed joins with bloomfilter using mapreduce | |
CN110413865A (zh) | 基于双向编码器表征模型的语义表示模型及其方法 | |
Al-Khasawneh et al. | MapReduce a comprehensive review | |
CN111324429B (zh) | 一种基于多代血统参考距离的微服务组合调度方法 | |
KR101955376B1 (ko) | 비공유 아키텍처 기반의 분산 스트림 처리 엔진에서 관계형 질의를 처리하는 방법, 이를 수행하기 위한 기록 매체 및 장치 | |
Barkhordari et al. | Atrak: a MapReduce-based data warehouse for big data | |
Doulkeridis et al. | On saying" enough already!" in mapreduce | |
Cheng et al. | FastMFDs: a fast, efficient algorithm for mining minimal functional dependencies from large-scale distributed data with Spark | |
EP2765517B1 (en) | Data stream splitting for low-latency data access |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C02 | Deemed withdrawal of patent application after publication (patent law 2001) | ||
WD01 | Invention patent application deemed withdrawn after publication |
Application publication date: 20100616 |