执行计划的查找方法、存储方法及装置与流程

文档序号:12733837阅读:来源:国知局

技术特征:

1.一种执行计划的查找方法,其特征在于,包括:

接收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语句进行映射以及将所述执行计划与所述约束条件进行映射并存储。

5.根据权利要求4所述的方法,其特征在于,生成与所述SQL语句对应的执行计划,具体包括:

在没有查找与所述SQL语句对应的执行计划时,生成与所述SQL语句对应的执行计划。

6.根据权利要求4所述的方法,其特征在于,根据所述SQL语句,生成与所述SQL语句对应的参数化SQL语句和约束条件,具体包括:

对所述SQL语句进行词法解析,确定所述SQL语句中包含的字面量;

将所述SQL语句中包含的字面量替换为参数,得到与所述SQL语句对应的参数化SQL语句;所述参数包含与所述字面量对应的序号;

对所述SQL语句进行语义解析,确定所述SQL语句中包含的与约束条件相关的字面量;

根据确定的与约束条件相关的字面量,生成与所述参数化SQL语句对应的约束条件。

7.根据权利要求6所述的方法,其特征在于,对所述SQL语句进行语义解析,确定所述SQL语句中包含的与约束条件相关的字面量,具体包括:

对所述SQL语句进行语义解析,将所述SQL语句中包含的位于特定字符串之后的字面量确定为与约束条件相关的字面量;所述特定字符串包括:“order by”或“group by”;或,

对所述SQL语句进行语义解析,将所述SQL语句中包含的属于精度数字的字面量确定为与约束条件相关的字面量;或,

对所述SQL语句进行语义解析,将所述SQL语句中的恒真/恒假条件包含的字面量确定为与约束条件相关的字面量。

8.一种执行计划的查找装置,其特征在于,包括:

接收单元,接收SQL语句;

生成单元,根据所述SQL语句,生成与所述SQL语句对应的参数化SQL语句;所述参数化SQL语句包含与所述SQL语句的字面量对应的参数;

查找单元,查找预先存储的与所述参数化SQL语句对应的执行计划和约束条件;

判断单元,在查找到与所述参数化SQL语句对应的执行计划和约束条件时,判断所述参数化SQL语句中的与所述约束条件对应的参数是否满足所述约束条件;若满足,将查询到的所述执行计划确定为待执行的执行计划。

9.根据权利要求8所述的装置,其特征在于,所述装置还包括:

数组生成单元,生成包含与所述参数化SQL语句中的参数对应的字面量的参数数组;

则所述判断单元根据所述参数数组和所述约束条件,判断所述参数数组中与所述约束条件对应的字面量是否满足所述约束条件。

10.根据权利要求8所述的装置,其特征在于,所述生成单元包括:

字面量确定单元,对所述SQL语句进行词法解析,确定所述SQL语句中包含的字面量;

参数替换单元,将所述SQL语句中包含的字面量替换为参数,得到与所述SQL语句对应的参数化SQL语句;所述参数包含与所述字面量对应的序号。

11.一种执行计划的存储装置,其特征在于,包括:

接收单元,接收SQL语句;

第一生成单元,生成与所述SQL语句对应的执行计划;

第二生成单元,根据所述SQL语句,生成与所述SQL语句对应的参数化SQL语句和约束条件;

存储单元,将所述执行计划与所述参数化SQL语句进行映射以及将所述执行计划与所述约束条件进行映射并存储。

12.根据权利要求11所述的方法,其特征在于,所述第一生成单元在没有查找与所述SQL语句对应的执行计划时,生成与所述SQL语句对应的执行计划。

13.根据权利要求11所述的装置,其特征在于,所述第二生成单元包括:

字面量确定单元,对所述SQL语句进行词法解析,确定所述SQL语句中包含的字面量;

参数替换单元,将所述SQL语句中包含的字面量替换为参数,生成与所述SQL语句对应的参数化SQL语句;所述参数包含与所述字面量对应的序号;

约束字面量确定单元,对所述SQL语句进行语义解析,确定所述SQL语句中包含的与约束条件相关的字面量;

约束条件生成单元,根据确定的所述与约束条件相关的字面量,生成与所述参数化SQL语句对应的约束条件。

14.根据权利要求13所述的装置,其特征在于,约束字面量确定单元对所述SQL语句进行语义解析,将所述SQL语句中包含的位于特定字符串之后的字面量确定为与约束条件相关的字面量;所述特定字符串包括:“order by”或“group by”;或,

所述约束字面量确定单元对所述SQL语句进行语义解析,将所述SQL语句中包含的属于精度数字的字面量确定为与约束条件相关的字面量;或,

所述约束字面量确定单元对所述SQL语句进行语义解析,将所述SQL语句中的恒真/恒假条件包含的字面量确定为与约束条件相关的字面量。

当前第2页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1