[发明专利]存储过程的运行、编译方法、装置和数据库系统有效
| 申请号: | 201610809314.5 | 申请日: | 2016-09-05 |
| 公开(公告)号: | CN107798025B | 公开(公告)日: | 2020-06-02 |
| 发明(设计)人: | 王国平;朱俊华 | 申请(专利权)人: | 华为技术有限公司 |
| 主分类号: | G06F16/2453 | 分类号: | G06F16/2453 |
| 代理公司: | 北京三高永信知识产权代理有限责任公司 11138 | 代理人: | 罗振安 |
| 地址: | 518129 广东*** | 国省代码: | 广东;44 |
| 权利要求书: | 查看更多 | 说明书: | 查看更多 |
| 摘要: | |||
| 搜索关键词: | 存储 过程 运行 编译 方法 装置 数据库 系统 | ||
1.一种存储过程的运行方法,其特征在于,用于数据库系统中的存储过程执行引擎,所述数据库系统包括所述存储过程执行引擎和结构化查询语言SQL执行引擎,所述方法包括:
在要执行的第一语句为SQL语句时,将所述第一语句所在的SQL组发送至所述SQL执行引擎,以便于所述SQL执行引擎执行所述第一语句所在的SQL组中的语句并在执行所述第一语句所在的SQL组中的语句时共用相同的子表达式的计算结果,所述第一语句为存储过程中的语句,所述第一语句所在的SQL组中包括至少一个语句且所述至少一个语句均为SQL语句,所述第一语句所在的SQL组中的语句之间不存在依赖关系且存在相同的子表达式;
获取所述SQL执行引擎返回的所述SQL组中的语句的执行结果。
2.根据权利要求1所述的方法,其特征在于,所述将所述第一语句所在的SQL组发送至所述SQL执行引擎,包括:
判断所述第一语句是否为所述SQL组中在所述存储过程中的顺序最靠前的SQL语句;
在所述第一语句为所述SQL组中在所述存储过程中的顺序最靠前的SQL语句时,将所述第一语句所在的SQL组发送至所述SQL执行引擎。
3.根据权利要求2所述的方法,其特征在于,在所述判断所述第一语句是否为所述SQL组中在所述存储过程中的顺序最靠前的SQL语句之后,所述方法还包括:
在所述第一语句不为所述SQL组中在所述存储过程中的顺序最靠前的SQL语句时,获取所述第一语句的执行结果,所述第一语句的执行结果是所述存储过程执行引擎在要执行所述SQL组中在所述存储过程中的顺序最靠前的SQL语句时,将所述SQL组发送至所述SQL执行引擎后所述SQL执行引擎返回的。
4.根据权利要求1所述的方法,其特征在于,在所述第一语句所在的SQL组中的语句具有相同的多重表集合,且以所述多重表集合中的数据表为顶点,所述第一语句所在的SQL组中的语句共有的连接谓词为边构成的图形连通时,所述第一语句所在的SQL组中的语句存在相同的子表达式。
5.一种存储过程的运行方法,其特征在于,用于数据库系统中的SQL执行引擎,所述数据库系统包括存储过程执行引擎和所述SQL执行引擎,所述方法包括:
获取所述存储过程执行引擎发送的第一语句所在的SQL组,所述第一语句为存储过程中的语句,所述第一语句所在的SQL组中包括至少一个语句且所述至少一个语句均为SQL语句,所述第一语句所在的SQL组中的语句之间不存在依赖关系且存在相同的子表达式;
执行所述第一语句所在的SQL组中的语句并获取所述第一语句所在的SQL组中的语句的执行结果,在获取所述执行结果时,共用所述相同的子表达式的计算结果;
向所述存储过程执行引擎发送所述执行结果。
6.根据权利要求5所述的方法,其特征在于,在所述第一语句所在的SQL组中的语句具有相同的多重表集合,且以所述多重表集合中的数据表为顶点,所述第一语句所在的SQL组中的语句共有的连接谓词为边构成的图形连通时,所述第一语句所在的SQL组中的语句存在相同的子表达式。
7.一种存储过程的编译方法,其特征在于,用于数据库系统中的存储过程编译引擎,所述数据库系统包括所述存储过程编译引擎和SQL执行引擎,所述方法包括:
编译存储过程时,获取所述存储过程中SQL语句的信息,所述SQL语句的信息包括所述存储过程中的SQL语句之间是否存在依赖关系的信息及所述存储过程中的SQL语句之间是否存在相同的子表达式的信息;
根据所述SQL语句的信息将所述存储过程中的SQL语句分成至少一个SQL组,所述至少一个SQL组中任一SQL组中的语句间不存在依赖关系且存在相同的子表达式,所述SQL执行引擎在执行所述任一SQL组中的语句时,能够共用所述相同的子表达式的计算结果。
8.根据权利要求7所述的方法,其特征在于,所述根据所述SQL语句的信息将所述存储过程中的SQL语句分成至少一个SQL组,包括:
按照所述存储过程中SQL语句的先后顺序,依次将所述存储过程中的SQL语句分成至少一个SQL组。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于华为技术有限公司,未经华为技术有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201610809314.5/1.html,转载请声明来源钻瓜专利网。
- 上一篇:一种出行目的地推荐处理方法及装置
- 下一篇:数据查询方法和装置





