[发明专利]数据库查询语句的优化方法、存储介质与计算机设备在审
申请号: | 202211714470.5 | 申请日: | 2022-12-29 |
公开(公告)号: | CN115934760A | 公开(公告)日: | 2023-04-07 |
发明(设计)人: | 刘进央;尹强 | 申请(专利权)人: | 北京人大金仓信息技术股份有限公司 |
主分类号: | G06F16/2453 | 分类号: | G06F16/2453;G06F16/242;G06F16/2455;G06F16/28 |
代理公司: | 北京智汇东方知识产权代理事务所(普通合伙) 11391 | 代理人: | 刘长江 |
地址: | 100102 北京市朝阳区容*** | 国省代码: | 北京;11 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 数据库 查询 语句 优化 方法 存储 介质 计算机 设备 | ||
本发明提供了一种数据库查询语句的优化方法、存储介质与计算机设备。其中上述方法包括:获取数据库查询语句,并确定数据库查询语句是否包含去除重复值的关键词DISTINCT;在数据库查询语句包含关键词DISTINCT的情况下,判断数据库查询语句指定的数据表是否全部满足预设的限定表规则;若是,删除数据库查询语句中的关键词DISTINCT,得到消除优化后的查询语句;按照消除优化后的查询语句执行查询。本发明的方案,保证删除DISTINCT的情况下,查询结果不会出现重复项,保证优化前后的一致性,节省了进行去重处理耗费的资源,提高了查询处理效率。
技术领域
本发明涉及数据库技术,特别是涉及一种数据库查询语句的优化方法、存储介质与计算机设备。
背景技术
关系型数据库一般采用结构化查询语言(Structured Query Language,简称SQL)进行查询,对一个给定的查询语句,通常存在多种可能的策略,查询优化就是从中找出最有效的查询执行计划的处理过程。针对同一个查询语句,不同的执行计划的代价上可能存在非常大的区别。数据库系统的优化器的任务就是生成优选的查询执行。
查询结果中可能会出现重复值,在需要仅仅列出不重复的结果时,可以采用DISTINCT关键词,用于返回唯一不同的。对于形如select distinct…的SQL语句,优化器在处理时,无论是否存在重复元组,都会对结果进行去重操作。
在查询结果本身不具有重复值的情况下,上述处理DISTINCT关键词的方式会增加资源开销,导致查询效率下降。
发明内容
本发明的一个目的是要至少解决上述任一方面技术问题的数据库查询语句的优化方法、存储介质与计算机设备。
本发明一个进一步的目的是提高具有DISTINCT关键词的查询语句的查询效率。
本发明另一进一步的目的是优化消除关键词DISTINCT的规则。
特别地,本发明提供了一种数据库查询语句的优化方法,其包括:
获取数据库查询语句,并确定数据库查询语句是否包含去除重复值的关键词DISTINCT;
在数据库查询语句包含关键词DISTINCT的情况下,判断数据库查询语句指定的数据表是否全部满足预设的限定表规则;
若是,删除数据库查询语句中的关键词DISTINCT,得到消除优化后的查询语句;
按照消除优化后的查询语句执行查询。
可选地,判断查询语句指定的数据表是否全部满足预设的限定表规则的步骤包括:
确定数据表中数据库查询语句涉及数据列的集合;
对数据列的集合逐列判断是否同时满足非空性条件以及唯一性条件;
若满足,则判定查询语句指定的数据表属于限定表,并且认定限定表全部满足预设的限定表规则。
可选地,在对数据列的集合逐列判断是否同时满足非空性条件以及唯一性条件的步骤之后还包括:
将数据列不能同时满足非空性条件以及唯一性条件的数据表作为待分析表;
判断待分析表是否与任一限定表存在唯一连接关系;
若是,则认定待分析表也属于限定表。
可选地,判断待分析表是否与任一限定表存在唯一连接关系的步骤包括:
待分析表与限定表中满足非空性条件和唯一性条件的列集合中的一列存在连接谓词关系且满足待分析表的某一列数据与列集合中的一列数据具有等值关系。
可选地,非空性条件包括:
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于北京人大金仓信息技术股份有限公司,未经北京人大金仓信息技术股份有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/202211714470.5/2.html,转载请声明来源钻瓜专利网。