[发明专利]一种SQL优化方法及设备有效
| 申请号: | 201710772704.4 | 申请日: | 2017-08-31 |
| 公开(公告)号: | CN107704511B | 公开(公告)日: | 2019-09-06 |
| 发明(设计)人: | 陈振强;熊仲健 | 申请(专利权)人: | 星环信息科技(上海)有限公司 |
| 主分类号: | G06F16/2453 | 分类号: | G06F16/2453;G06F16/242 |
| 代理公司: | 上海百一领御专利代理事务所(普通合伙) 31243 | 代理人: | 佘猛;邵栋 |
| 地址: | 200233 上海市*** | 国省代码: | 上海;31 |
| 权利要求书: | 查看更多 | 说明书: | 查看更多 |
| 摘要: | |||
| 搜索关键词: | 一种 sql 优化 方法 设备 | ||
本申请的目的是提供一种SQL优化方法及设备,本申请通过确定SQL语句中的至少一个待优化的查询块;分别对每个所述待优化的查询块进行分析提取,得到每个所述待优化的查询块对应的过滤条件;分别基于每个所述过滤条件对对应的所述待优化的查询块进行优化,得到所述SQL语句中的每个优化后的查询块,实现了基于过滤条件对对应的待优化的查询块的过滤,减少了后续对查询块的计算量,由于对SQL语句中的查询块进行了过滤优化,进而也对应得到了优化后的SQL语句,也实现了对SQL语句的优化,进而提高了SQL执行的性能。
技术领域
本申请涉及计算机领域,尤其涉及一种SQL优化方法及设备。
背景技术
数据库系统的总体性能在很大程度上取决于数据库的查询处理的代价和效率。在针对数据库的查询中,经常会使用到查询块(Query Block)。查询块,包括内嵌在结构化查询语句(Structured Query Language,SQL)里面的匿名子查询、命名子查询(with as)、视图(view)、数据表等(例如临时表)等,是SQL应用的常用组成部分。例如,with as常见用法是将一组公共的查询块放到命名子查询(with as)里面,取一个名字,后面的SQL可以重复使用它,避免重复计算,从而达到优化目的。
为了通用,查询块内部的过滤条件通常比较少或者没有,一般在使用时会再加上相应的过滤条件。但从编译、执行的过程看,在编译查询块的引用点时,命名子查询(withas)、临时表以及物化的view往往已经编译,甚至执行结束,引用点的信息无法直接应用到查询块内部进行过滤优化。
对命名子查询(with as),数据库系统在实现时,通常如果命名子查询(with as)只有一个引用点,则其内敛(inline):实现上相当于把命名子查询(with as)的代码插入到其引用点,然后删除命名子查询(with as)。内敛(inline)之后就变成一个匿名子查询。如果有多个引用点,会有如下两种策略:(一)、在所有引用点内敛(inline),内敛(inline)之后便可以应用当前的优化。其缺点是查询块的SQL会重复计算多次。不内敛(inline)时,则单独执行查询块,并将结果用临时表或者某种缓存(cache)的形式存放,需要时直接提取结果,而不是重复执行,以提高计算效率。
因此可知,当前主要针对的是单个SQL操作之间的过滤条件,并没有对SQL语句内的查询块之间的过滤优化的方法,因此,如何处理SQL内的查询块之间的过滤优化成为业界主要研究的课题。
发明内容
本申请的一个目的是提供一种SQL优化方法及设备,以解决现有技术中对SQL语句内的查询块之间的过滤优化的问题。
根据本申请的一个方面,提供了一种SQL优化方法,其中,所述方法包括:
确定SQL语句中的至少一个待优化的查询块;
分别对每个所述待优化的查询块进行分析提取,得到每个所述待优化的查询块对应的过滤条件;
分别基于每个所述过滤条件对对应的所述待优化的查询块进行优化,得到所述SQL语句中的每个优化后的查询块,对应得到优化后的SQL语句。
进一步地,上述方法中,所述确定SQL语句中的至少一个待优化的查询块,包括:
通过词法、语法和语义分析对获取的SQL语句进行分析,得到包含有所述SQL语句中的所有查询块及其引用点、所述引用点的引用列及其对应的所述引用列的有效过滤表达式的中间表示信息;
遍历并识别所述中间表示信息,得到所述SQL语句中的至少一个待优化的查询块,其中,所述待优化的查询块包括其引用点、所述引用点的引用列及其对应的所述引用列的有效过滤表达式。
进一步地,上述方法中,所述分别对每个所述待优化的查询块进行分析提取,得到每个所述待优化的查询块对应的过滤条件,包括:
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于星环信息科技(上海)有限公司,未经星环信息科技(上海)有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201710772704.4/2.html,转载请声明来源钻瓜专利网。
- 上一篇:信息处理方法
- 下一篇:基于社交数据的金融产品推荐方法、电子装置及介质





