[发明专利]一种SQL优化方法及设备有效
申请号: | 201611109489.1 | 申请日: | 2016-12-02 |
公开(公告)号: | CN106611044B | 公开(公告)日: | 2020-05-08 |
发明(设计)人: | 陈振强;熊仲健 | 申请(专利权)人: | 星环信息科技(上海)有限公司 |
主分类号: | G06F16/2453 | 分类号: | G06F16/2453;G06F16/242 |
代理公司: | 上海百一领御专利代理事务所(普通合伙) 31243 | 代理人: | 佘猛 |
地址: | 200233 上海市*** | 国省代码: | 上海;31 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 sql 优化 方法 设备 | ||
1.一种SQL优化方法,其中,所述方法包括:
对至少两条SQL语句进行分析并提取,得到SQL语句的基本信息、每一条所述SQL语句对应的表及其表的列的对应关系;
基于所述SQL语句的基本信息、所述SQL语句对应的表及其表的列的对应关系,删除所述SQL语句中的无用表得到初步过滤表后的SQL语句;
删除所述初步过滤表后的SQL语句中的无用列,得到优化后的SQL语句。
2.根据权利要求1所述的方法,其中,所述对至少两条SQL语句进行分析并提取,得到SQL语句的基本信息、每一条所述SQL语句对应的表及其表的列的对应关系,包括:
获取至少两条SQL语句;
通过词法、语法和语义分析对每一条SQL语句进行分析,得到包含有每一条SQL语句的基本信息、SQL语句对应的表及其表的列的对应关系的中间表示信息;
对所述中间表示信息进行提取,得到每一条SQL语句的基本信息、SQL语句对应的表及其表的列的对应关系。
3.根据权利要求1或2所述的方法,其中,所述SQL语句对应的表及其表的列的对应关系包括:
所述SQL语句对应的表的基本信息;
所述表的列的基本信息。
4.根据权利要求1所述的方法,其中,所述基于所述SQL语句的基本信息、所述SQL语句对应的表及其表的列的对应关系,删除所述SQL语句中的无用表得到初步过滤表后的SQL语句,包括:
基于表的生命周期和所述SQL语句的基本信息、所述SQL语句对应的表及其表的列的对应关系,将无引用关系的临时表和/或未预定义的全局表从所述SQL语句对应的所述表中删除,得到初步过滤表后的SQL语句。
5.根据权利要求1所述的方法,其中,所述基于所述SQL语句的基本信息、所述SQL语句对应的表及其表的列的对应关系,删除所述SQL语句中的无用表得到初步过滤表后的SQL语句之后,还包括:
基于数据流方程组对每一条SQL语句进行数据流分析,得到每一条SQL语句对应的当前可用的所有表;
检测所述SQL语句对应的当前可用的所有表中的可内敛的表并将其内敛至唯一引用点,得到进一步过滤表后的SQL语句。
6.根据权利要求5所述的方法,其中,所述数据流方程组包括以下至少任一项:
前一个SQL语句的输出表集合对应的方程;
当前创建或修改的表集合对应的方程;
被修改前的表和当前删除的表的表集合对应的方程;
当前输出表集合对应的方程。
7.根据权利要求6所述的方法,其中,所述检测所述SQL语句对应的当前可用的所有表中的可内敛的表并将其内敛至唯一引用点,得到进一步过滤表后的SQL语句,包括将所述SQL语句对应的当前可用的所有表中的只有一个引用点的表初始化在表工作列表中,重复如下步骤,直至所述表工作列表为空后,将确定的标记的内敛表内敛至唯一的引用点之后,将所述标记的内敛表删除得到进一步过滤表后的SQL语句:
每次从所述表工作列表中取出一个表并标记所述表为内敛表;
获取所述内敛表的引用点及其所述内敛表创建时对应的引用表集合;
若所述内敛表创建时对应的引用表集合中有至少一个引用表不存在所述内敛表的引用点对应的前一个SQL语句的输入表集合中,则更新标记所述内敛表为不能被内敛的表;
若所述内敛表创建时对应的引用表集合中的所有引用表都存在所述内敛表的引用点对应的前一个SQL语句的输出表集合中,则确定所述标记的内敛表。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于星环信息科技(上海)有限公司,未经星环信息科技(上海)有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201611109489.1/1.html,转载请声明来源钻瓜专利网。
- 上一篇:一种视频搜索方法及系统
- 下一篇:一种智能交互方法、装置及智能终端