分布式数据库中的查询计划优化方法及系统技术方案

技术编号:29400755 阅读:44 留言:0更新日期:2021-07-23 22:38
本申请涉及一种分布式数据库中的查询计划优化方法及系统。所述方法包括:基于查询计划中的每个表的常量相关条件数量来选择基准表;基于基准表中的一个或多个当前常量相关条件,评估基准表中不具有常量相关条件的一个或多个列的常量相关条件;针对基准表,基于当前常量相关条件和所评估的常量相关条件,生成常量相关条件组合;以及将常量相关条件组合传递给查询计划中与基准表相关联的一个或多个其它表以扩展每个表的查询条件。

【技术实现步骤摘要】
分布式数据库中的查询计划优化方法及系统
本申请涉及SQL查询优化,尤其涉及一种分布式数据库中的查询计划优化方法及系统。
技术介绍
在实际的数据库应用中,经常需要从多个数据表中读取或查询数据,这通常可以通过使用结构化查询语言(StructuredQueryLanguage,SQL)语句中的连接(JOIN)来实现。数据库针对数据表连接的查询计划通常会先判定一个驱动表,接着基于SQL语句条件对该驱动表进行数据筛选,然后基于针对该驱动表的筛选后的数据通过连接方式(例如,嵌套循环连接(nest-loop)或哈希连接(hashjoin))与后续的表进行数据关联,以完成高效的连接。然而,上述方式在计算节点与存储节点分离的分布式数据库架构中存在一些弊端:(1)上述连接方式的验证依赖全局统计信息的准确性,例如需要根据全局统计信息来判定一个最优的驱动表。然而在分布式数据库中,由于计算节点与存储节点分离,从而在生成查询计划的计算节点层可以获得的数据统计信息相对较少或可能需要高昂的代价来在分布式网络环境中维护一个相对准确的统计信息;(2)查询计划没有充分考虑分布式环境下数据节点跨网络进行数据传递所需的开销。在分布式数据库中,相关联的两个表可能在物理上并不在一起或相邻,因此需要将这两个表跨越网络进行传递后才能进行连接(例如嵌套循环连接或哈希连接)。在数据库查询中,跨网络传递数据量的大小在很大程度上会影响SQL语句的执行效率。因此,在数据库查询中,尤其是在分布式数据库查询中,存在对于减少在分布式网络间传递数据量的需求。<br>
技术实现思路
提供本
技术实现思路
以便介绍一组概念,这组概念将在以下的具体实施方式中做进一步描述。本
技术实现思路
并非旨在标识所保护主题的关键特征或必要特征,也不旨在用于限制所保护主题的范围。为了达到上述目的,本申请提供一种用于分布式数据库中的查询计划优化的方法及系统。该方法包括:基于查询计划中的每个表的常量相关条件数量来选择基准表;基于所述基准表中的一个或多个当前常量相关条件,评估所述基准表中不具有常量相关条件的一个或多个列的常量相关条件;针对所述基准表,基于所述当前常量相关条件和所评估的常量相关条件,生成常量相关条件组合;以及将所述常量相关条件组合传递给所述查询计划中与所述基准表相关联的一个或多个其它表以扩展所述每个表的查询条件。在一些例子中,所述一个或多个其它表与所述基准表之间存在等值条件列。在一些例子中,所述评估操作进一步包括:提取所述基准表中的一个或多个当前常量相关条件;以及基于所提取的一个或多个当前常量相关条件,确定所述不具有常量相关条件的一个或多个列的每个列的最大值和最小值。在一些例子中,所述生成操作进一步包括拼接针对所述基准表的所述当前常量相关条件和所评估的常量相关条件。在一些例子中,所述选择操作进一步包括:将所述查询计划中具有最多数量的常量相关条件的表选择为所述基准表。此外,该方法还包括:对所述查询计划中的所有表按照所述常量相关条件数量进行降序排序;以及以迭代方式将经降序排序的所有表依次分别选择作为所述基准表。此外,该方法还包括:基于扩展的每个表的查询条件,执行SQLjoin语句。为了达到上述目的,本申请公开了一种用于分布式数据库中的查询计划优化的系统,该系统中包括:选择模块,用于基于查询计划中的每个表的常量相关条件数量来选择基准表;评估模块,用于基于所述基准表中的一个或多个当前常量相关条件,评估所述基准表中不具有常量相关条件的一个或多个列的常量相关条件;生成模块,用于针对所述基准表,基于所述当前常量相关条件和所评估的常量相关条件,生成常量相关条件组合;以及传递模块,用于将所述常量相关条件组合传递给所述查询计划中与所述基准表相关联的一个或多个其它表以扩展所述每个表的查询条件。在一些例子中,所述一个或多个其它表与所述基准表之间存在等值条件列。在一些例子中,所述评估模块进一步用于提取所述基准表中的一个或多个当前常量相关条件,以及基于所提取的一个或多个当前常量相关条件,确定所述不具有常量相关条件的一个或多个列的每个列的最大值和最小值。在一些例子中,所述生成模块进一步用于拼接针对所述基准表的所述当前常量相关条件和所评估的常量相关条件。在一些例子中,所述选择模块还用于将所述查询计划中具有最多数量的常量相关条件的表选择为所述基准表。此外,该系统还包括:排序模块,用于对查询计划中的所有表按照常量相关条件数量进行降序排序;以及所述选择模块进一步用于以迭代方式将经降序排序的所有表依次分别选择作为所述基准表。此外,该系统还包括:执行模块,用于基于扩展的每个表的查询条件,执行SQLjoin语句。按照本专利技术实施例的一种用于分布式数据库中的查询计划优化的装置,包括:处理器;以及存储器,用于存储可执行指令,其中,所述可执行指令当被执行时使得所述处理器执行前述的方法。按照本专利技术实施例的一种机器可读介质,其上存储有可执行指令,其中,所述可执行指令当被执行时,使得机器执行前述的方法。与现有技术相比,本申请可以获得的技术效果包括:(1)无需精确的全局统计信息:本申请无需依赖精确的全局统计信息,而是直接基于SQL语句语义与现有查询条件自动进行查询条件的自启发扩展;且后端数据节点进行数据条件过滤与查询时,只需依赖每个数据节点的本地统计信息即可,从而本申请能够大幅降低全局统计信息的维护成本;(2)提前应用后置表的数据筛选条件:由于可以将连接语句中的后置表的潜在数据筛选条件提前应用到前置表中,所以可以预先利用后续的筛选条件对前置表进行筛选,大幅减少需要跨网络移动的数据量,提升查询效率;(3)任意表的查询条件都可以使SQL查询计划的语句中其他关联表的数据筛选能力增强:只需要对SQL语句中任意表的查询条件进行扩展或完善,就可以通过自启发技术将SQL语句中任意表的扩展查询条件自动传递到所有相关联的其它表,以增强其它表的数据筛选能力,减少需要在网络间传递的数据量。应当注意,以上一个或多个方面包括以下详细描述以及在权利要求中具体指出的特征。下面的说明书及附图详细阐述了所述一个或多个方面的某些说明性特征。这些特征仅仅指示可以实施各个方面的原理的多种方式,并且本公开内容旨在包括所有这些方面和其等同变换。附图说明以下将结合附图描述所公开的多个方面,这些附图被提供用以说明而非限制所公开的多个方面。图1示出了根据本申请的实施例的SQL查询架构的逻辑框图;图2示出了根据本申请的实施例的用于分布式数据库中的查询计划优化的方法的流程示意图;图3示出了根据本申请的实施例的用于分布式数据库中的查询计划优化的另一方法的流程示意图;图4示出了根据本申请的实施例的用于分布式数据库中的查询计划优化的系统的结构示意图;图5示出了根据本申请的实施例的用于分布式数据库中的查询计划优化的装置的示意图。具体实施方式现在将参考多种示例性实施方式来讨论本公开内容本文档来自技高网
...

【技术保护点】
1.一种用于分布式数据库中的查询计划优化的方法,包括以下操作:/n基于查询计划中的每个表的常量相关条件数量来选择基准表;/n基于所述基准表中的一个或多个当前常量相关条件,评估所述基准表中不具有常量相关条件的一个或多个列的常量相关条件;/n针对所述基准表,基于所述当前常量相关条件和所评估的常量相关条件,生成常量相关条件组合;以及/n将所述常量相关条件组合传递给所述查询计划中与所述基准表相关联的一个或多个其它表以扩展所述每个表的查询条件。/n

【技术特征摘要】
1.一种用于分布式数据库中的查询计划优化的方法,包括以下操作:
基于查询计划中的每个表的常量相关条件数量来选择基准表;
基于所述基准表中的一个或多个当前常量相关条件,评估所述基准表中不具有常量相关条件的一个或多个列的常量相关条件;
针对所述基准表,基于所述当前常量相关条件和所评估的常量相关条件,生成常量相关条件组合;以及
将所述常量相关条件组合传递给所述查询计划中与所述基准表相关联的一个或多个其它表以扩展所述每个表的查询条件。


2.根据权利要求1所述的方法,其特征在于,所述一个或多个其它表与所述基准表之间存在等值条件列。


3.根据权利要求1所述的方法,其特征在于,所述评估操作进一步包括:
提取所述基准表中的一个或多个当前常量相关条件;以及
基于所提取的一个或多个当前常量相关条件,确定所述不具有常量相关条件的一个或多个列的每个列的最大值和最小值。


4.根据权利要求1所述的方法,其特征在于,所述生成操作进一步包括拼接针对所述基准表的所述当前常量相关条件和所评估的常量相关条件。


5.根据权利要求1所述的方法,其特征在于,所述选择操作进一步包括:将所述查询计划中具有最多数量的常量相关条件的表选择为所述基准表。


6.根据权利要求1所述的方法,其特征在于,还包括:
对所述查询计划中的所有表按照所述常量相关条件数量进行降序排序;以及
以迭代方式将经降序排序的所有表依次分别选择作为所述基准表。


7.根据权利要求1所述的方法,其特征在于,所述方法进一步包括:基于扩展的每个表的查询条件,执行SQLjoin语句。


8.一种用于分布式数据库中的查询计划优化的系统,包括:
选择模块,用于基于查询计划中的每个表的常量相关条件数量来选择基准表;
评估模块,用于基于所述基准表中的一个或多个当前常...

【专利技术属性】
技术研发人员:李韩邹西山林金怡吴伟华文其瑞高孝鑫龙禹
申请(专利权)人:联通沃音乐文化有限公司北京万里开源软件有限公司
类型:发明
国别省市:广东;44

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

1