一种数据查询的优化方法、装置、设备及存储介质制造方法及图纸

技术编号:22688817 阅读:14 留言:0更新日期:2019-11-30 03:31
本发明专利技术公开了一种数据查询的优化方法、装置、设备及存储介质。通过确定解析后的结构化查询语言SQL语句为UNION集合类型语句后,确定所述UNION集合类型语句中的各分支语句的优化结果;根据所述各分支语句的优化结果,确定待执行分支语句;按照所述待执行分支语句进行结构化查询的技术手段,解决了现有技术中需要对集合类型的语句中的各个分支语句进行查询的问题,通过对UNION集合类型语句中的各分支语句进行优化处理,删除满足优化条件的分支语句,保留未满足优化条件的分支语句,仅按照保留的分支语句进行查询,减少扫描数据表的个数,提升查询效率。

An optimization method, device, equipment and storage medium for data query

The invention discloses an optimization method, device, device and storage medium for data query. After determining that the SQL statement of the parsed structured query language is a union set type statement, the optimization result of each branch statement in the union set type statement is determined; the branch statement to be executed is determined according to the optimization result of each branch statement; the technical means of structured query according to the branch statement to be executed solves the need of set class in the existing technology To query the branch statements in the union set type statements, we need to optimize the branch statements in the union set type statements, delete the branch statements that meet the optimization conditions, retain the branch statements that do not meet the optimization conditions, only query according to the reserved branch statements, reduce the number of scanned data tables, and improve the query efficiency.

【技术实现步骤摘要】
一种数据查询的优化方法、装置、设备及存储介质
本专利技术实施例涉及数据查询
,尤其涉及一种数据查询的优化方法、装置、设备及存储介质。
技术介绍
随着信息化的不断深入发展,数据生成速度正在提高,需要处理的数据量急速膨胀,大数据时代即将到来。所谓大数据指所涉及的数据量规模巨大,以至于无法通过主流软件在合理的时间内进行处理的数据。对大规模的数据进存储、查询以及分析已经成为一个亟待解决的问题。结构化查询语言(StructuredQueryLanguage,SQL),是一种特殊目的的编程语言,是一种数据库查询和程序设计语言,用于存取数据以及查询、更新和管理关系数据库系统。SQL通过不同的语句来实现数据查询和程序的设计,UNION集合类型语句是SQL语句中至关重要的一个语句。UNION集合类型语句一般包括多个分支语句,UNION集合类型语句主要将多个分支语句的查询结果进行集合操作。正常情况UNION集合类型语句中的各个分支语句都是先扫描表数据,然后根据过滤条件过滤数据得到结果集。基于上述技术方案,在使用UNION集合类型语句进行查询时,需要对每个分支语句对应的数据表进行扫描,降低了查询效率。
技术实现思路
本专利技术提供一种数据查询的优化方法、装置、设备及存储介质,以实现在使用UNION集合类型语句进行查询时,减少扫描数据表的个数,提升查询效率。第一方面,本专利技术实施例提供了一种数据查询的优化方法,包括:确定解析后的结构化查询语言SQL语句为UNION集合类型语句后,确定所述UNION集合类型语句中的各分支语句的优化结果;根据所述各分支语句的优化结果,确定待执行分支语句;按照所述待执行分支语句进行结构化查询。第二方面,本专利技术实施例还提供了一种数据查询的优化装置,包括:优化结果确定模块,用于确定解析后的结构化查询语言SQL语句为UNION集合类型语句后,确定所述UNION集合类型语句中的各分支语句的优化结果;待执行分支语句确定模块,用于根据所述各分支语句的优化结果,确定待执行分支语句;结构化查询模块,用于按照所述待执行分支语句进行结构化查询。第三方面,本专利技术实施例还提供了一种设备,所述设备包括:一个或多个处理器;存储器,用于存储一个或多个程序,当所述一个或多个程序被所述一个或多个处理器执行,使得所述一个或多个处理器实现如上述第一方面中所述的数据查询的优化方法。第四方面,本专利技术实施例还提供了一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现如上述第一方面中所述的数据查询的优化方法。本专利技术实施例通过确定解析后的结构化查询语言SQL语句为UNION集合类型语句后,确定UNION集合类型语句中的各分支语句的优化结果;根据各分支语句的优化结果,确定待执行分支语句;按照待执行分支语句进行结构化查询的技术手段,解决了现有技术中需要对UNION集合类型语句中的各个分支语句进行查询的问题。本实施例通过对UNION集合类型语句中的各分支语句进行优化处理,删除满足优化条件的分支语句,保留未满足优化条件的分支语句,仅按照保留的分支语句进行查询,减少扫描数据表的个数,提升查询效率。附图说明图1为本专利技术实施例一提供的数据查询的优化方法的流程图;图2为本专利技术实施例二提供的数据查询的优化方法的流程图;图3为本专利技术实施例三提供的数据查询的优化方法的流程图;图4a是本专利技术实施例三提供的SQL二叉树的结构示意图;图4b为本专利技术实施例三提供的优化后的SQL二叉树的结构示意图;图5为本专利技术实施例三提供的数据查询的优化装置的结构示意图;图6为本专利技术实施例四提供的一种设备的结构示意图。具体实施方式下面结合附图和实施例对本专利技术作进一步的详细说明。可以理解的是,此处所描述的具体实施例仅仅用于解释本专利技术,而非对本专利技术的限定。另外还需要说明的是,为了便于描述,附图中仅示出了与本专利技术相关的部分而非全部结构。另外还需要说明的是,为了便于描述,附图中仅示出了与本专利技术相关的部分而非全部结构。实施例一图1为本专利技术实施例一提供的数据查询的优化方法的流程图,本实施例可适用于UNION集合类型语句中分支语句的过滤条件为假时,进行查询的情况,该方法可以由数据查询的优化装置来执行,该数据查询的优化装置可以通过软件和/或硬件的方式实现。SQL是一种特殊目的的编程语言,是一种数据库查询和程序设计语言,用于存取数据以及查询、更新和管理关系数据库系统;同时也是数据库脚本文件的扩展名。SQL中的编程语句简称为SQL语句。如图1所示,本实施例提供的数据查询的优化方法具体包括如下步骤:S110、确定解析后的SQL语句为UNION集合类型语句后,确定所述UNION集合类型语句中的各分支语句的优化结果。在本实施例中,由于SQL是一种编程语言,SQL中为了实现查询、更新以及管理等,会存在不同类型的语句。SQL语句的类型可以根据SQL语句中定义的类型来确定。集合由一个或多个元素构成的整体,在SQL中的表就代表着一个数据集合,而其中的查询就是在集合的基础上生成的结果集。SQL的集合运算符包括交集INTERSECT,并集UNION(不包含重复的值),UNIONALL(包含重复的值),差集MINUS,非交集EXCEPT。UNION运算符包括:并集UNION(不包含重复的值)和UNIONALL(包含重复的值)。进一步的,如果检测到SQL语句使用了UNION运算符时,则确定解析后的SQL语句为UNION集合类型语句。接收到用户输入的SQL语句之后,对接收到的SQL语句进行语法和语义解析后,得到解析后的SQL语句。需要说明的是,本实施例中仅对SQL语句的解析进行说明,而非限定。可以根据实际情况选择合适的SQL语句解析方法对SQL语句进行解析。需要说明的是,一个SQL语句可以是由一个分支语句构成也可以是由多个分支语句进行构成。一个SQL语句中,任意一个分支语句为UNION运算符时,则确定该SQL语句为UNION集合类型语句。然后对SQL语句中各个分支语句分别进行分析优化,得到优化结果。在本实施例中,优化结果为删除分支语句,和保留分支语句。判断UNION集合类型语句的分支语句的过滤条件是否恒为假。如果UNION集合类型语句的分支语句的过滤条件为真,则将过滤条件为真的分支语句进行保留,并将另一分支语句作为新的分支语句进行判断,返回执行判断分支语句的过滤条件是否恒为假的操作。如果分支语句的过滤条件恒为假,则判断UNION集合类型语句的分支语句个数是否大于1,如果UNION集合类型语句的分支语句个数大于1,则删除过滤条件恒为假对应的分支语句,并将分支语句个数减去1,并将下一分支语句作为新的分支语句进行判断,返回执行判断分支语句的过滤条件是否恒为假的操作。如果UNION集合类型语句的分支语句个数等于1,则不本文档来自技高网...

【技术保护点】
1.一种数据查询的优化方法,其特征在于,包括:/n确定解析后的结构化查询语言SQL语句为UNION集合类型语句后,确定所述UNION集合类型语句中的各分支语句的优化结果;/n根据所述各分支语句的优化结果,确定待执行分支语句;/n按照所述待执行分支语句进行结构化查询。/n

【技术特征摘要】
1.一种数据查询的优化方法,其特征在于,包括:
确定解析后的结构化查询语言SQL语句为UNION集合类型语句后,确定所述UNION集合类型语句中的各分支语句的优化结果;
根据所述各分支语句的优化结果,确定待执行分支语句;
按照所述待执行分支语句进行结构化查询。


2.根据权利要求1所述的方法,其特征在于,所述确定所述UNION集合类型语句中的各分支语句的优化结果,包括:
针对各分支语句,判断分支语句是否满足优化条件;
如果所述分支语句满足优化条件,则确定所述分支语句的优化结果为删除满足优化条件的分支语句,将分支语句个数减一,得到后一分支语句对应的分支语句个数;其中,所述分支语句为UNION集合运算的分支,所述分支语句满足优化条件包括:所述分支语句的过滤条件为假,且所述分支语句对应的分支语句个数大于1;
如果所述分支语句未满足优化条件,则确定所述分支语句的优化结果为保留未满足优化条件的分支语句;其中,所述分支语句未满足优化条件包括:所述分支语句的过滤条件为真;和/或,所述分支语句的过滤条件为假,且所述分支语句对应的分支语句个数等于1。


3.根据权利要求2所述的方法,其特征在于,根据所述各分支语句的优化结果,确定待执行分支语句,包括:
将保留的未满足优化条件的各分支语句,确定为待执行分支语句。


4.根据权利要求1所述的方法,其特征在于,所述确定所述UNION集合类型语句中的各分支语句的优化结果之前,还包括:
将解析后的SQL语句的集合操作符作为SQL二叉树的根节点,建立SQL二叉树。


5.根据权利要求1所述的方法,其特征在于,所述确定所述UNION集合类型语句中的各分支语句的优化结果,包括:
采用先序遍历所述SQL二叉树每个节点,
根据所述SQL二叉树各个节点对应的节点类型,对所述UNION集合类型语句中的各个分支语句进行优化,得到各分支语句的优化结果。


6.根据权利要求1所述的方法...

【专利技术属性】
技术研发人员:朱仲颖刘志勇韩朱忠
申请(专利权)人:上海达梦数据库有限公司
类型:发明
国别省市:上海;31

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

1