[发明专利]SQL语句优化方法及装置在审
申请号: | 202210106821.8 | 申请日: | 2022-01-28 |
公开(公告)号: | CN116561154A | 公开(公告)日: | 2023-08-08 |
发明(设计)人: | 丁俊辉 | 申请(专利权)人: | 中银金融科技有限公司 |
主分类号: | G06F16/242 | 分类号: | G06F16/242;G06F16/2453 |
代理公司: | 北京路浩知识产权代理有限公司 11002 | 代理人: | 刘亚平 |
地址: | 201201 *** | 国省代码: | 上海;31 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | sql 语句 优化 方法 装置 | ||
本申请提供一种SQL语句优化方法及装置。所述方法包括:对SQL语句进行分析,获取所述SQL语句的待优化节点;根据所述待优化节点查询预先配置好的通用配置规则集;基于所述通用配置规则集,对所述SQL语句进行优化,获取目标SQL语句。本申请实施例提供的SQL语句优化方法通过通用的配置规则将SQL语句进行等价优化,使得即使写出的SQL语句性能较差,也可将其转换为有效的SQL语句进行查询,且通过通用的配置规则进行优化,使得SQL语句可适用于多种数据库的查询,从而提高查询效率。
技术领域
本申请涉及数据库技术领域,具体涉及一种SQL语句优化方法及装置。
背景技术
SQL语言,是结构化查询语言(StructuredQueryLanguage)的简称。SQL语言是一种数据库查询和程序设计语言,用于存取数据以及查询、更新和管理关系数据库系统;同时也是数据库脚本文件的扩展名。当前,在存储海量数据的各类数据库中进行数据查询和分析时,一般使用SQL语言来进行查询以及分析处理。
然而,在实际应用过程中,开发人员经常需要编写逻辑比较复杂的SQL语句,而部分开发人员由于不熟悉SQL的底层原理,可能会写出性能较差的SQL语句,影响查询效率。且针对不同的数据库,需要根据不同的数据库或存储方式,需要编写不同的SQL语句进行查询,导致数据查询的执行效率低。
发明内容
本申请实施例提供一种SQL语句优化方法及装置,从通用和使用角度出发,对SQL语句进行优化,提高查询效率。
第一方面,本申请实施例提供一种SQL语句优化方法,包括:
对SQL语句进行分析,获取所述SQL语句的待优化节点;
根据所述待优化节点查询预先配置好的通用配置规则集;
基于所述通用配置规则集,对所述SQL语句进行优化,获取目标SQL语句。
在一个实施例中,所述对SQL语句进行分析,获取所述SQL语句的待优化节点包括:
对所述SQL语句进行语法分析,以检测所述SQL语句的语法,并在检测到所述SQL语句的语法满足预设条件时,对所述SQL语句进行词法分析,获取所述SQL语句的待优化节点。
在一个实施例中,基于所述通用配置规则集,对所述SQL语句进行优化,包括:
基于所述通用配置规则集,检测SQL语句中的子查询,并在检测到所述子查询中未包含聚集函数时,将所述子查询与所述SQL语句中的主查询合并。
在一个实施例中,基于所述通用配置规则集,对所述SQL语句进行优化,包括:
基于所述通用配置规则集,检测SQL语句中的查询字段,并在检测到所述查询字段为冗余字段时,删除所述查询字段。
在一个实施例中,基于所述通用配置规则集,对所述SQL语句进行优化,包括:
基于所述通用配置规则集,检测SQL语句中的关联条件,并当检测到所述关联条件为函数与常量关联时,在所述常量上添加所述函数的等价函数。
在一个实施例中,基于所述通用配置规则集,对所述SQL语句进行优化,包括:
基于所述通用配置规则集,检测所述SQL语句中的关联字段,并当检测到所述关联字段关联的数据的数据类型不一致时,将所述关联字段关联的数据的数据类型进行类型转换,以使所述关联字段关联的数据的数据类型一致。
在一个实施例中,还包括:
根据所述目标SQL语句中关联查询的各数据表的数据量大小,调整所述目标SQL语句中各数据表的位置。
在一个实施例中,还包括:
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于中银金融科技有限公司,未经中银金融科技有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/202210106821.8/2.html,转载请声明来源钻瓜专利网。
- 上一篇:一种无线扩音方法、装置及系统
- 下一篇:基于腺病毒载体的广谱新冠疫苗及其应用