[发明专利]执行计划的查找方法、存储方法及装置有效
申请号: | 201610576924.5 | 申请日: | 2016-07-20 |
公开(公告)号: | CN106897343B | 公开(公告)日: | 2020-08-07 |
发明(设计)人: | 陈萌萌;陈俊全;肖意 | 申请(专利权)人: | 阿里巴巴集团控股有限公司 |
主分类号: | G06F16/242 | 分类号: | G06F16/242;G06F16/2453 |
代理公司: | 北京国昊天诚知识产权代理有限公司 11315 | 代理人: | 黄熊 |
地址: | 英属开曼群岛大开*** | 国省代码: | 暂无信息 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 执行 计划 查找 方法 存储 装置 | ||
1.一种执行计划的查找方法,其特征在于,包括:
接收SQL语句;
根据所述SQL语句,生成与所述SQL语句对应的参数化SQL语句;所述参数化SQL语句包含与所述SQL语句的字面量对应的参数;
查找预先存储的与所述参数化SQL语句对应的执行计划和约束条件,确定所述参数化SQL语句对应的执行计划和约束条件包括:对样本SQL语句进行词法解析,确定所述样本SQL语句中包含的字面量;将所述样本SQL语句中包含的字面量替换为参数,得到与所述样本SQL语句对应的参数化SQL语句;所述参数包含与所述字面量对应的序号;对所述样本SQL语句进行语义解析,确定所述样本SQL语句中包含的与约束条件相关的字面量;根据确定的与约束条件相关的字面量,生成与所述参数化SQL语句对应的约束条件;
若查找到,判断所述参数化SQL语句中的与所述约束条件对应的参数是否满足所述约束条件;若满足,将查询到的所述执行计划确定为待执行的执行计划。
2.根据权利要求1所述的方法,其特征在于,在生成与所述SQL语句对应的参数化SQL语句之后,在查找预先存储的与所述参数化SQL语句对应的执行计划和约束条件之前,所述方法还包括:
生成包含与所述参数化SQL语句中的参数对应的字面量的参数数组;
判断所述参数化SQL语句中的与所述约束条件对应的参数是否满足所述约束条件,具体包括:
根据所述参数数组和所述约束条件,判断所述参数数组中的与所述约束条件对应的字面量是否满足所述约束条件。
3.根据权利要求1所述的方法,其特征在于,根据所述SQL语句,生成与所述SQL语句对应的参数化SQL语句,具体包括:
对所述SQL语句进行词法解析,确定所述SQL语句中包含的字面量;
将所述SQL语句中包含的字面量替换为参数,得到与所述SQL语句对应的参数化SQL语句;所述参数包含与所述字面量对应的序号。
4.一种执行计划的存储方法,其特征在于,包括:
接收SQL语句;
生成与所述SQL语句对应的执行计划;
根据所述SQL语句,生成与所述SQL语句对应的参数化SQL语句和约束条件,包括:对所述SQL语句进行词法解析,确定所述SQL语句中包含的字面量;将所述SQL语句中包含的字面量替换为参数,得到与所述SQL语句对应的参数化SQL语句;所述参数包含与所述字面量对应的序号;对所述SQL语句进行语义解析,确定所述SQL语句中包含的与约束条件相关的字面量;根据确定的与约束条件相关的字面量,生成与所述参数化SQL语句对应的约束条件;
将所述执行计划与所述参数化SQL语句进行映射以及将所述执行计划与所述约束条件进行映射并存储。
5.根据权利要求4所述的方法,其特征在于,生成与所述SQL语句对应的执行计划,具体包括:
在没有查找与所述SQL语句对应的执行计划时,生成与所述SQL语句对应的执行计划。
6.根据权利要求4所述的方法,其特征在于,对所述SQL语句进行语义解析,确定所述SQL语句中包含的与约束条件相关的字面量,具体包括:
对所述SQL语句进行语义解析,将所述SQL语句中包含的位于特定字符串之后的字面量确定为与约束条件相关的字面量;所述特定字符串包括:“order by”或“group by”;或,
对所述SQL语句进行语义解析,将所述SQL语句中包含的属于精度数字的字面量确定为与约束条件相关的字面量;或,
对所述SQL语句进行语义解析,将所述SQL语句中的恒真/恒假条件包含的字面量确定为与约束条件相关的字面量。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于阿里巴巴集团控股有限公司,未经阿里巴巴集团控股有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201610576924.5/1.html,转载请声明来源钻瓜专利网。