【技术实现步骤摘要】
基于数据剪枝提升等值连接查询性能的方法、装置及设备
[0001]本专利技术涉及数据库查询
,尤其涉及一种基于数据剪枝提升等值连接查询性能的方法、装置及设备。
技术介绍
[0002]执行多路等值连接查询主要分为两个步骤:1.通过扫描算子获取所需数据2.通过其他算子(如连接算子、聚合算子等)根据获取的数据计算最终结果。第一步主要依赖谓词下推降低扫描的数据量,而第2步同样会涉及对最终执行结果没有贡献的多余数据,它们是在计算过程中舍弃的,需要为过程消耗一部分计算资源,因此这种方法存在剪枝广度不够、无法彻底搜索所有剪枝对象的问题。
[0003]集中式数据库系统,如PostgreSQL,执行等值连接查询期间,查询优化器会根据SQL语句中涉及的等值连接属性,根据等值传递性,构造等价类,以减少扫描数据数量。分布式数据库系统,如TiDB,将表进行分区,结合分区信息以及谓词信息,将不必要的分区提前去除,达到数据剪枝的目的。但这两种策略无法捕捉数据内部分布,剪枝深度不够,无法充分去除不必要数据。
技术实现思路
[0004]有鉴于此,本专利技术提供一种基于数据剪枝提升等值连接查询性能的方法、装置及设备,通过提高剪枝广度和深度减少等值查询操作的数据量,提升查询执行效率。
[0005]本专利技术实施例解决其技术问题所采用的技术方案是:
[0006]一种基于数据剪枝提升等值连接查询性能的方法,包括:
[0007]步骤S1,获取多路等值连接查询操作所涉及的所有表、以及各个所述表之间的对应连接属性 ...
【技术保护点】
【技术特征摘要】
1.一种基于数据剪枝提升等值连接查询性能的方法,其特征在于,包括:步骤S1,获取多路等值连接查询操作所涉及的所有表、以及各个所述表之间的对应连接属性,所述对应连接属性通过解析器从输入的SQL语句中获得;步骤S2,根据所有所述表、以及所述对应连接属性,生成N个独立的传递闭包;步骤S3,令所述传递闭包作为具有M个剪枝元素PE的剪枝单元PU,对所述传递闭包实施两段剪枝操作,得到两段剪枝后的传递闭包;步骤S4,基于所有所述两段剪枝后的传递闭包执行所述多路等值连接查询操作,得出查询结果。2.如权利要求1所述的基于数据剪枝提升等值连接查询性能的方法,其特征在于,所述步骤S2根据所有所述表、以及所述对应连接属性,生成N个独立的传递闭包包括:步骤S21,对SQL语句进行语法解析,得到所述SQL语句的语法树,并对所述语法树进行逻辑优化;步骤S22,深度优先遍历优化后的所述语法树,从中提取出具有等值连接关系的表构成的路径,每一个所述路径作为一个独立的传递闭包PU。3.如权利要求2所述的基于数据剪枝提升等值连接查询性能的方法,其特征在于,所述步骤S3对所述传递闭包实施两段剪枝操作,得到两段剪枝后的传递闭包包括:步骤S31,对所述传递闭包PU实施一段剪枝α
‑
align,根据区间对齐策略,将所述PU中每一个剪枝元素PE对齐,得到{PU}1,其中,所述传递闭包PU中的所述PE由表名和列名构成,PE={r|r=[x,y]};步骤S32,所述对齐结果不为空时,计算出所述{PU}1的空洞范围HR,根据所述空洞范围去除各个所述剪枝元素PE中不存在的数据范围,以使所述{PU}1离散化,得到{PU}2;步骤S33,对所述{PU}2实施二段剪枝β
‑
align,构造出所述{PU}2的公共范围,并基于所述公共范围对齐所述{PU}2中的每一个剪枝元素PE中的元素,直至达到稳态得到{PU}3,所述稳态代表每一个所述PE中的元素均实现所有数据范围对齐;步骤S34,所述{PU}3为所述两段剪枝后的传递闭包。4.如权利要求3所述的基于数据剪枝提升等值连接查询性能的方法,其特征在于,所述步骤S32求解出所述{PU}1的空洞范围HR包括:步骤S321,计算出用于限制所述空洞范围中元素数目的上届O:O=B+A*U/N其中,B表示基本阈值,A表示默认值,U/N是扩展因子,U表示所述表里第i列中值的总个数,N表示第i列的基数;步骤S322,求解出所述表里第i列中数据范围跨度不低于预设值α的所有候选空洞范围;步骤S323,将各个所述候选空洞范围按照跨度进行降序排序,选取前β%的候选空洞范围组成所述表里第i列对应的空洞范围,所述空洞范围HR包括所述{PU}1中各所述表各列的空洞范围。5.如权利要求4所述...
【专利技术属性】
技术研发人员:高锦涛,郑洁,姜璐璐,李弋杰,王浩,莫先,
申请(专利权)人:宁夏大学,
类型:发明
国别省市:
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。