[发明专利]执行计划的查找方法、存储方法及装置有效
申请号: | 201610576924.5 | 申请日: | 2016-07-20 |
公开(公告)号: | CN106897343B | 公开(公告)日: | 2020-08-07 |
发明(设计)人: | 陈萌萌;陈俊全;肖意 | 申请(专利权)人: | 阿里巴巴集团控股有限公司 |
主分类号: | G06F16/242 | 分类号: | G06F16/242;G06F16/2453 |
代理公司: | 北京国昊天诚知识产权代理有限公司 11315 | 代理人: | 黄熊 |
地址: | 英属开曼群岛大开*** | 国省代码: | 暂无信息 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 执行 计划 查找 方法 存储 装置 | ||
本申请实施例公开了一种执行计划的查找方法、存储方法及装置。所述执行计划的查找方法包括:接收SQL语句;根据所述SQL语句,生成与所述SQL语句对应的参数化SQL语句;查找预先存储的与所述参数化SQL语句对应的执行计划和约束条件;若查找到,判断所述参数化SQL语句中的与所述约束条件对应的参数是否满足所述约束条件;若满足,将查询到的所述执行计划确定为待执行的执行计划。本申请实施例可以避免在查找执行计划的过程中对SQL语句进行语义的解析,从而降低上述执行计划的查找过程所带来的时间消耗,提升数据库系统的性能。
技术领域
本申请涉及数据库技术领域,特别涉及一种执行计划的查找方法、存储方法及装置。
背景技术
通常,数据库的访问可以通过SQL(Structured Query Language,结构化查询语言)来实现。一般地,数据库系统需要根据与访问任务对应的SQL语句,制定如何达到所述访问任务的目的的执行过程,这个过程被称为“执行计划”(execution plan),“执行计划”是一个可以用来被执行以返回用户所希望的结果的程序实例。
现有技术中,生成与SQL语句对应的执行计划的过程大致包括:首先,对SQL语句进行词法/语法的解析,然后,对SQL语句进行语义的解析,并基于优化规则,确定最优执行计划,最终,生成与上述最优执行计划的代码。由于上述生成执行计划的过程会耗用一定的时间,这在一定程度上影响到数据库的性能。有鉴于此,现有技术中的一种解决方案是“计划缓存”(plan cache)。其中,将预先生成的若干执行计划进行存储,以形成“计划缓存”。基于“计划缓存”,数据库系统在接收到每一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/201610576924.5/2.html,转载请声明来源钻瓜专利网。