当前位置: 首页 > 专利查询>浙江大学专利>正文

基于谓词规约和代价估算的局部多查询优化方法技术

技术编号:14694945 阅读:97 留言:0更新日期:2017-02-23 19:04
本发明专利技术公开一种基于谓词规约和代价估算的局部多查询优化方法,属于大数据查询优化领域,本发明专利技术方法为:首先利用数据查询系统已有的优化器对查询集合中的查询分别进行优化,并以查询树的形式表示,得到优化后的查询树集合;然后结合局部多查询优化方法,通过多次迭代,对查询之间相同或相近的子任务进行等价或规约处理,生成全局多查询计划树;最后结合生成的全局多查询计划和子任务之间的规约关系,根据代价模型估算中间结果重用开销,判断直接执行子任务还是重用中间结果,对全局多查询计划进行优化。本发明专利技术充分考虑中间结果利用和查询并发之间的平衡,减少重复操作,有效提升查询性能。

【技术实现步骤摘要】

本专利技术涉及大数据查询优化领域,尤其涉及一种基于谓词规约和代价估算的局部多查询优化方法
技术介绍
早期查询优化和调度等问题的研究主要针对单查询,但随着并发量的提升,以及数据查询系统的不断改进,查询并发处理已经成为现代数据查询系统必不可少的功能。当并发查询由相关(涉及相同或相近操作)的查询构成时,传统的单查询优化方法并不考虑查询之间的相关性,从而限制了系统查询性能的提升。多查询优化是当系统同时输入多个查询时,通过对该批查询进行分析,将其中涉及相同或相近操作的部分进行合并,生成全局多查询计划。通过该多查询计划的执行来同时完成多个查询,提高查询效率。多查询优化方法可以分为两类:一类是全局多查询优化方法,其输入为未经优化的查询集合,此类方法的优点是生成的候选执行计划数量大,输出的结果往往较优,缺点是优化搜索开销高,同时由于无法利用数据查询系统的优化器,因而实现难度较高;另一类是局部多查询优化方法,其输入为数据查询系统优化器输出的查询集合,此类方法的优点是搜索空间较小,同时较易实现。由于局部多查询优化方法往往不考虑重用中间结果带来的开销,因而在实际执行中可能导致重用中间结果的开销高于直接执行的开销,反而降低了系统查询性能。现有多查询优化方法在利用代价函数估算查询计划开销时,仅仅考虑了I/O开销,即查询处理所涉及的磁盘页面数,而忽视了CPU计算开销和网络传输开销。然而,当底层采用分布式计算架构(如大部分的大数据查询系统)并且存在连接操作时,CPU计算和网络传输的开销不可忽略。此时原有的代价模型显然无法准确地估计查询的开销。
技术实现思路
针对以上描述的现有技术的不足,本专利技术提供了基于谓词规约和代价估算的局部多查询优化方法,能够对查询之间相同或相近的中间结果加以利用,减少重复操作,从而提升并发查询性能,减少查询响应时间。基于谓词规约和代价估算的局部多查询优化方法分为预处理、局部多查询优化处理和多查询计划优化三个阶段,具体实施步骤如下:(1)预处理阶段:步骤(1-1),利用数据查询系统已有的查询优化器,对查询集合中的每条查询进行优化,分别找到最优的查询计划,并以查询计划树的形式表示,最后得到查询计划树集合;步骤(1-2),重新定义查询计划树中的节点编号;步骤(1-3),定义节点映射关系map<Nodekey,Nodevalue>M,并将M初始化为空;步骤(1-4),将所有的查询计划树中的节点添加至全局多查询计划树中,并在全局多查询计划树中添加“超根节点”;在步骤(1-2)中,重写查询计划树中的节点编号是用于生成全局多查询计划树中节点的序号。在步骤(1-3)中,映射关系map<Nodekey,Nodevalue>M表明key节点将会重用value节点得到的结果,map为数据类型,M为变量名称,属于map数据类型,用于存储节点key到节点value的映射关系。在步骤(1-4)中,“超根节点”指向查询计划树集合中各个查询的根节点。本专利技术使用局部多查询优化方法,利用数据查询系统已有的查询优化器为每条查询语句找到优化后的查询计划,减少了算法搜索空间,缩短了查询优化算法执行时间。(2)局部多查询优化处理阶段:步骤(2-1),遍历查询全局多查询计划树中的节点集合V={v1,v2,...,vn本文档来自技高网...
基于谓词规约和代价估算的局部多查询优化方法

【技术保护点】
一种基于谓词规约和代价估算的局部多查询优化方法,其特征在于:分为预处理、局部多查询优化处理和多查询计划优化三个阶段,具体步骤如下:(1)预处理阶段:步骤(1‑1),利用数据查询系统已有的查询优化器,对查询集合中的每条查询进行优化,分别找到最优的查询计划,并以查询计划树的形式表示,得到查询计划树集合;步骤(1‑2),重新定义查询计划树中的节点编号;步骤(1‑3),定义节点映射关系map<Node key,Node value>M,并将M初始化为空,map为数据类型,M为变量名称;步骤(1‑4),将所有的查询计划树中的节点添加至全局多查询计划树中,并在全局多查询计划树中添加“超根节点”;(2)局部多查询优化处理阶段:步骤(2‑1),遍历查询全局多查询计划树中的节点集合V={v1,v2,...,vn},若集合V中存在与当前节点等价的节点,选择节点集合V中等价查询节点中编号最小的节点vj*,进行合并操作,用vj*代替所有vi∈V‑{vj*};步骤(2‑2),对于每个节点vi,找到符合“最强归约条件”的子任务taskj*,在M中添加vj*到vi的映射,通过有向线段连接vj*→vi,并改变vj*的操作描述,以节点vi所对应的子任务taski的结果作为子任务taskj*的输入;步骤(2‑3),重复步骤(2‑1)和步骤(2‑2),对全局多查询计划树中的节点进行等价替换和规约替换,直到无法进一步简化全局多查询计划树为止;(3)多查询计划优化阶段:步骤(3‑1),获取局部多查询优化处理阶段得到的映射关系和全局多查询计划树;步骤(3‑2),根据映射关系map<Node key,Node value>M,遍历全局多查询计划树中的节点,若遍历完成,则执行步骤(3‑8);步骤(3‑3),根据不同任务对应的代价模型,估算直接开销和重用开销;步骤(3‑4),对比重用开销和直接开销,若重用开销大于直接开销,则执行步骤(3‑5);若重用开销小于直接开销,则执行步骤(3‑6);步骤(3‑5),将映射关系中节点对应的关系映射为自己,不利用中间结果直接执行节点对应的任务,然后执行步骤(3‑7);步骤(3‑6),重复步骤(3‑3)和步骤(3‑4),判断是否存在重用开销更低的节点,若存在则更新映射关系,将该节点映射到重用开销更低的节点;步骤(3‑7),重复步骤(3‑2);步骤(3‑8),返回全局多查询计划树。...

【技术特征摘要】
1.一种基于谓词规约和代价估算的局部多查询优化方法,其特征在于:分为预处理、局部多查询优化处理和多查询计划优化三个阶段,具体步骤如下:(1)预处理阶段:步骤(1-1),利用数据查询系统已有的查询优化器,对查询集合中的每条查询进行优化,分别找到最优的查询计划,并以查询计划树的形式表示,得到查询计划树集合;步骤(1-2),重新定义查询计划树中的节点编号;步骤...

【专利技术属性】
技术研发人员:陈岭杨谊
申请(专利权)人:浙江大学
类型:发明
国别省市:浙江;33

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1