1 .一种数据库语句执行计划的生成方法,包括:
获取查询语句;
根据所述查询语句的语句内容获取预先缓存的执行计划;
判断所述执行计划是否是针对分区表的执行计划;
若所述执行计划是针对分区表的执行计划,根据所述查询语句含有的常量值确定所述
查询语句实际需要执行的扫描操作,所述针对分区表的执行计划包括对所述分区表的多个
子表顺序扫描的多个所述扫描操作;
根据所述实际需要执行的扫描操作生成使用的实际执行计划。
2.根据权利要求1所述的数据库语句执行计划的生成方法,其中,所述判断所述执行计
划是否是针对分区表的执行计划的步骤包括:
将所述查询语句的表名和变量名与预先缓存的分区标记数组进行匹配,所述分区标记
数组为分区表的表名和分区条件构成的数组;
若匹配到对应的分区标记数组,则判定所述执行计划是针对分区表的执行计划。
3 .根据权利要求1所述的数据库语句执行计划的生成方法,其中,所述根据所述查询语
句含有的常量值确定所述查询语句实际需要执行的扫描操作的步骤包括:
将所述常量值和所述分区表的子表的分区范围进行对比,确定需要扫描的子表;
将对应所述需要扫描的子表的扫描操作确定为所述实际需要执行的扫描操作。
4 .根据权利要求1所述的数据库语句执行计划的生成方法,其中,所述根据所述实际需
要执行的扫描操作生成使用的实际执行计划的步骤包括:
拷贝所述执行计划,得到基础执行计划;
删除所述基础执行计划中除所述实际需要执行的扫描操作之外的其他扫描操作,得到
所述实际执行计划。
5 .根据权利要求1所述的数据库语句执行计划的生成方法,其中,所述根据所述查询语
句的语句内容获取预先缓存的执行计划的步骤包括:
将所述查询语句转化为去除常量值的参数化语句;
根据预置算法计算所述参数化语句的标识;
从缓存的执行计划中获取与所述标识匹配的执行计划。
6 .根据权利要求5所述的数据库语句执行计划的生成方法,其中,所述根据预置算法计
算所述参数化语句的标识的步骤包括:
将所述参数化语句计算为一个整数值;
利用所述整数值、所述参数化语句的字符长度、数据库名和用户身份标识计算哈希值,
将所述哈希值作为所述标识。
7 .根据权利要求5所述的数据库语句执行计划的生成方法,其中,所述根据预置算法计
算所述参数化语句的标识的步骤包括:
采用信息摘要算法计算所述参数化语句的MD5值,将所述MD5值作为所述标识。
8.根据权利要求5所述的数据库语句执行计划的生成方法,其中,所述从缓存的执行计
划中获取与所述标识匹配的执行计划的步骤包括:
从预先配置的计划缓存表中查找与所述标识匹配的执行计划,所述计划缓存表存储有
一一对应的标识与执行计划。
权 利 要 求 书
1/2 页
2
评论