[发明专利]语句块执行计划的生成方法、装置、设备和存储介质有效
| 申请号: | 202010634512.9 | 申请日: | 2020-07-02 |
| 公开(公告)号: | CN111813803B | 公开(公告)日: | 2023-07-21 |
| 发明(设计)人: | 望声宜;孟正凌;韩朱忠 | 申请(专利权)人: | 上海达梦数据库有限公司 |
| 主分类号: | G06F16/2453 | 分类号: | G06F16/2453;G06F16/2452 |
| 代理公司: | 北京品源专利代理有限公司 11332 | 代理人: | 孟金喆 |
| 地址: | 201203 上海*** | 国省代码: | 上海;31 |
| 权利要求书: | 查看更多 | 说明书: | 查看更多 |
| 摘要: | |||
| 搜索关键词: | 语句 执行 计划 生成 方法 装置 设备 存储 介质 | ||
1.一种语句块执行计划的生成方法,其特征在于,包括:
获取当前语句块;
将所述当前语句块中关联有安全策略函数的第一语句改写为第二语句作为目标语句块,其中,所述第一语句为插入语句、更新语句、删除语句或查询语句,所述第二语句为动态执行语句;
基于所述第一语句改写后得到的目标语句块生成所述当前语句块的目标执行计划;
其中,所述将所述当前语句块中关联安全策略函数的第一语句改写为第二语句,包括:
将所述当前语句块的引用安全策略函数标识置为FALSE,并按照执行顺序将所述当前语句块中的第一条SQL语句确定为当前SQL语句;
解析所述当前SQL语句,并判断所述当前SQL语句是否为第一语句,若是,则将所述当前语句块的引用安全策略函数标识置为TURE,并继续解析所述当前SQL语句,直至所述当前SQL语句解析完成;若否,则继续解析所述当前SQL语句,直至所述当前SQL语句解析完成;
判断所述当前语句块的引用安全策略函数标识是否为TURE,若是,则将所述当前SQL语句改写为动态执行语句,将所述当前语句块的引用安全策略函数标识重置为FALSE,将所述当前语句块中的下一条SQL语句确定为当前SQL语句,并返回执行解析所述当前SQL语句的操作,直至不存在下一条SQL语句为止;若否,则将所述当前语句块中的下一条SQL语句确定为当前SQL语句,并返回执行解析所述当前SQL语句的操作,直至不存在下一条SQL语句为止;
其中,所述动态执行语句包括SQL语句、using子句和into子句,将所述当前语句块中关联安全策略函数的第一语句改写为动态执行语句,包括:
当所述第一语句包含into子句时,将第一语句的into子句转换为动态执行语句的into子句;当第一语句引用当前语句块或上层可见语句块中声明的变量或参数时,将第一语句引用的所述变量或所述参数转换为所述动态执行语句的执行参数,并添加到新生成动态执行语句的using子句中;
所述目标执行计划包括第二语句的动态执行指令和当前尚未解析的动态SQL原始字符串。
2.根据权利要求1所述的方法,其特征在于,在所述基于所述第一语句改写后得到的目标语句块生成所述当前语句块的目标执行计划之后,还包括:
依据所述目标执行计划执行所述当前语句块。
3.根据权利要求1或2所述的方法,其特征在于,在所述基于所述第一语句改写后得到的目标语句块生成所述当前语句块的目标执行计划之后,还包括:
将所述当前语句块与所述目标执行计划对应存储于承载有当前数据库的计算机设备中。
4.根据权利要求3所述的方法,其特征在于,在所述将所述当前语句块中关联有安全策略函数的第一语句改写为第二语句之前,还包括:
确定承载有所述当前数据库的计算机设备中未存储与所述当前语句块相同的历史语句块。
5.根据权利要求4所述的方法,其特征在于,还包括:
如果承载有所述当前数据库的计算机设备中存储有与所述当前语句块相同的历史语句块,则获取所述历史语句块的执行计划,作为所述当前语句块的目标执行计划。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于上海达梦数据库有限公司,未经上海达梦数据库有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/202010634512.9/1.html,转载请声明来源钻瓜专利网。
- 上一篇:一种智能制造柔性生产线的自动上料装置
- 下一篇:一种复杂通风网络火灾模拟系统





