【技术实现步骤摘要】
SQL语句的执行方法、装置、设备和存储介质
本专利技术涉及数据库
,尤其涉及一种SQL语句的执行方法、装置、设备和存储介质。
技术介绍
结构化查询语言(StructuredQueryLanguage,SQL)是最重要的也是最常用的关系型数据库操作语言。分组子句(GROUPBY子句)是SQL标准中用于对数据进行分组处理的子句。当前通用的数据库技术中,在实现一个包含GROUPBY子句的SQL查询语句时,无论SQL查询语句所对应的表结构和数据特征是怎样的,都需要读取表中的数据并将其按照GROUPBY子句指定的分组项来进行分组。但是,当数据库实际面对较复杂的SQL查询语句时,采用当前通用的分组方式进行分组往往需要花费较多的时间,使得数据库的查询效率较低。
技术实现思路
有鉴于此,本专利技术实施例提供一种SQL语句的执行方法、装置、设备和存储介质,以减少执行SQL查询语句所花费的时间,提升数据库的查询效率。第一方面,本专利技术实施例提供了一种SQL语句的执行方法,包括:获取SQ ...
【技术保护点】
1.一种SQL语句的执行方法,其特征在于,包括:/n获取SQL语句的原始关系树;/n依次判断所述原始关系树中的各原始节点是否为目标过滤节点,并在判定所述原始节点为目标过滤节点时,删除与所述原始节点对应的第一目标节点的第一目标运算条件中包含的至少一个目标列名,以得到新的关系树;/n根据所述新的关系树执行所述SQL语句;/n其中,所述目标过滤节点的过滤条件中包含常量子表达式且不包含或运算和非运算;与所述原始节点对应的第一目标节点包括所述原始节点的祖先节点中的分组节点,所述第一目标运算条件包含至少列名,所述至少两个列名中存在目标列名,所述目标列名为所述常量子表达式中的常量列列名或 ...
【技术特征摘要】
1.一种SQL语句的执行方法,其特征在于,包括:
获取SQL语句的原始关系树;
依次判断所述原始关系树中的各原始节点是否为目标过滤节点,并在判定所述原始节点为目标过滤节点时,删除与所述原始节点对应的第一目标节点的第一目标运算条件中包含的至少一个目标列名,以得到新的关系树;
根据所述新的关系树执行所述SQL语句;
其中,所述目标过滤节点的过滤条件中包含常量子表达式且不包含或运算和非运算;与所述原始节点对应的第一目标节点包括所述原始节点的祖先节点中的分组节点,所述第一目标运算条件包含至少列名,所述至少两个列名中存在目标列名,所述目标列名为所述常量子表达式中的常量列列名或所述常量列列名的别名。
2.根据权利要求1所述的方法,其特征在于,所述删除与所述目标过滤节点对应的第一目标节点的第一目标运算条件中包含的至少一个目标列列名,包括:
针对与所述原始节点对应的每一个第一目标节点,如果所述第一目标节点的第一目标运算条件中仅包含目标列名,则选取一个目标列名作为预留列名,并删除所述第一目标运算条件中的非预留列名;如果所述第一目标节点的第一目标运算条件中包含非目标列名,则删除所述第一目标运算条件中的所有目标列名。
3.根据权利要求1所述的方法,其特征在于,在所述删除与所述原始节点对应的第一目标节点的第一目标运算条件中包含的至少一个目标列名之前,还包括:
确定所述原始节点与所述第一目标节点之间不存在全外连接节点,且所述原始节点不为左外连接节点或半连接节点的右孩子。
4.根据权利要求1所述的方法,其特征在于,在判定所述原始节点为目标过滤节点时,所述方法还包括:
将与所述原始节点对应的第二目标节点的第二目标运算条件内包含的目标列名替换为所述常量子表达式中的常量,其中,与所述原始节点对应的第二目标节点包括所述原始节点,以及所述原始节点的祖先节点中的结果集投影节点、过滤节点、内连接节点、左外连接节点和半连接节点中的至少一项;所述第二目标运算条件中包含所述目标列名。
5.根据权利要求1-4任一所述的方法,其特征在于,依次判断所述原始关系树中的各原始节点是否为目标过滤节点,并在判定所述原始节点为目标过滤节点时,删除与所述原始节点对应的第一目标节点的第一目标运算条件中包含的至少一个目标列名,包括:
初始化祖先链表,并选取所述原始关系树的根节点作为当前原始节点;
将所述当前原始节点添加至祖先链表的末尾;
判断所述当前原始节点是否为目标过滤节点;
如果所述当前原始节点为目标...
【专利技术属性】
技术研发人员:刘志勇,张钦,韩朱忠,
申请(专利权)人:上海达梦数据库有限公司,
类型:发明
国别省市:上海;31
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。