数据库的查询优化方法、存储介质与计算机设备技术

技术编号:38515363 阅读:17 留言:0更新日期:2023-08-19 16:57
本发明专利技术提供了一种数据库的查询优化方法、存储介质与计算机设备。其中上述方法包括:识别出包含分组聚集GROUP BY子句的查询语句作为优化目标语句;将优化目标语句中存在非空唯一列且非空唯一列出现在GROUP BY子句的查询表加入第一表集合;判断第一表集合是否包含优化目标语句的全部查询表;若是,消除优化目标语句中的GROUP BY子句,生成新的查询语句。本发明专利技术的方案,优化了GROUP BY子句的执行过程,在满足条件的情况下,消除GROUP BY子句,解决了GROUP BY子句执行过程导致查询效率下降的问题,提高了查询效率。提高了查询效率。提高了查询效率。

【技术实现步骤摘要】
数据库的查询优化方法、存储介质与计算机设备


[0001]本专利技术涉及数据库优化,特别是涉及一种数据库的查询优化方法、存储介质与计算机设备。

技术介绍

[0002]结构化查询语言(Structured Query Language,简称SQL)使用group by子句实现分组聚集。group by子句的一个或多个字段用于构造上述分组。也就是说按照一个或多个字段进行分组。
[0003]数据库系统对group by的执行流程为:创建内存临时表,该临时表包括group by子句的字段以及相应的聚集数值。然后对查询表进行全表扫描,在临时表中记录扫描结果。如果临时表中已经存在相应的数据行,则更新该数据行的聚集数值;如果存在,则在临时表插入新的数据行。在遍历完成后,对临时表进行排序,并输出结果集。
[0004]上述group by的执行流程的执行需要消耗数据库系统的资源,然而对于某些查询,group by子句的字段所组成的行在结果集中本身是唯一的,也即分组操作没有实际意义。对于这种情况,现有SOL并没有相应的优化措施,这导致在上述特定情形下本文档来自技高网...

【技术保护点】

【技术特征摘要】
1.一种数据库的查询优化方法,包括:识别出包含分组聚集GROUP BY子句的查询语句作为优化目标语句;将所述优化目标语句中存在非空唯一列且所述非空唯一列出现在所述GROUP BY子句的查询表加入第一表集合;判断所述第一表集合是否包含所述优化目标语句的全部查询表;若是,消除所述优化目标语句中的GROUP BY子句,生成新的查询语句。2.根据权利要求1所述的数据库的查询优化方法,在所述第一表集合并未包含所述优化目标语句的全部查询表的情况下,还包括:将所述优化目标语句中所述第一表集合之外的查询表加入第二表集合;对所述第二表集合中的查询表与所述第一表集合中的查询表逐一进行唯一连接关系验证;在所述第二表集合中的查询表全部验证通过的情况下,执行所述消除所述优化目标语句中的GROUP BY子句的步骤。3.根据权利要求2所述的数据库的查询优化方法,其中,所述对所述第二表集合中的查询表与所述第一表集合中的查询表逐一进行唯一连接关系验证的步骤包括:逐一提取所述第二表集合中的查询表,作为被验证表;判断所述被验证表是否与所述第一表集合中的任一查询表存在唯一连接关系;若是,则判定所述被验证表通过验证。4.根据权利要求3所述的数据库的查询优化方法,其中,在任一所述被验证表没有通过验证的情况下还包括:停止执行对进行唯一连接关系验证的步骤,判定优化目标语句不满...

【专利技术属性】
技术研发人员:刘进央尹强徐登峰冷建全
申请(专利权)人:北京人大金仓信息技术股份有限公司
类型:发明
国别省市:

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

1