[发明专利]一种SQL存储过程脚本优化的方法及装置在审
申请号: | 202010572972.3 | 申请日: | 2020-06-22 |
公开(公告)号: | CN111737280A | 公开(公告)日: | 2020-10-02 |
发明(设计)人: | 王志翔 | 申请(专利权)人: | 中国银行股份有限公司 |
主分类号: | G06F16/242 | 分类号: | G06F16/242;G06F8/30 |
代理公司: | 北京集佳知识产权代理有限公司 11227 | 代理人: | 柳虹 |
地址: | 100818 *** | 国省代码: | 北京;11 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 sql 存储 过程 脚本 优化 方法 装置 | ||
本申请实施例提供了一种SQL存储过程脚本的优化方法及装置,包括对待优化的SQL存储过程脚本进行逐层分解,得到多个子脚本模块,每个子脚本模块可以对应至少一个功能,确定SQL存储过程脚本中重复的子脚本模块,在SQL存储过程脚本中增加将子脚本模块赋值为对应的全局变量的语句,并将子脚本模块替换为对应的全局变量,得到优化后的SQL存储过程脚本。也就是说,SQL存储过程脚本中重复的语句被替换为全局变量,而全局变量被赋值为原来的语句,这样减少了SQL存储过程脚本中冗余的重复的语句,实现脚本的简化,而在脚本的执行过程中,也无需根据重复的语句执行重复的动作,而是通过调用的方式减少需要执行的操作,从而减少脚本的执行时间,减少系统反应时间。
技术领域
本申请涉及计算机领域,尤其涉及一种SQL存储过程脚本优化的方法及装置。
背景技术
结构化查询语言(Structured Query Language,SQL)是一种特殊目的的编程语言,是一种数据查询和程序设计语言,用于存取数据以及查询、更新和管理关系数据库系统,SQL存储过程(Stored Procedure)是在大型数据库系统中为完成特定功能的SQL语句集,它可以存储在数据库中,用户可以通过制定存储过程的名字来执行该存储过程。
SQL存储过程在各种代码开发中随处可见,尤其是报表等取数/计算复杂的逻辑系统的场景中,SQL的执行时间和性能直接决定了系统的反应时间,也很大程度决定了用户的体验度。现有系统开发过程中,对SQL的编写因开发的熟练度不同,很多系统中实际运行的SQL存储过程复杂度较高,导致系统反应时间长,甚至运行超时导致报错,严重影响用户体验。
发明内容
为了解决现有技术存在的上述技术问题,本申请提供了一种SQL存储过程脚本的优化方法及装置,实现了脚本的简化,减少了脚本运行的时间,减少系统反应时间,提高用户体验。
本申请提供了一种SQL存储过程脚本的优化方法,其特征在于,包括:
对待优化的SQL存储过程脚本进行逐层分解,得到多个子脚本模块;每个所述子脚本模块对应至少一个功能;
确定所述SQL存储过程脚本中重复的子脚本模块;
在所述SQL存储过程脚本中增加将所述子脚本模块赋值给对应的全局变量的语句,并将所述子脚本模块替换为对应的全局变量,得到优化后的SQL存储过程脚本。
可选的,所述将所述子脚本模块赋值给对应的全局变量的语句,用于在所述SQL存储过程脚本被调用时,将所述子脚本模块的执行结果赋值为对应的全局变量。
可选的,将所述全局变量的值存储在缓存中。
可选的,所述子脚本模块对应增加、删除、插入、修改、查找中的至少一个功能。
可选的,所述方法还包括:
基于预设规则,对所述子脚本模块进行检查,得到优化提醒。
可选的,所述方法还包括:
对所述优化后的SQL存储过程脚本进行验证。
本申请实施例还提供了一种SQL存储过程脚本的优化装置,包括:
脚本分解单元,用于对待优化的SQL存储过程脚本进行逐层分解,得到多个子脚本模块;每个所述子脚本模块对应至少一个功能;
模块确定单元,用于确定所述SQL存储过程脚本中重复的子脚本模块;
脚本优化单元,用于在所述SQL存储过程脚本中增加将所述子脚本模块赋值给对应的全局变量的语句,并将所述子脚本模块替换为对应的全局变量,得到优化后的SQL存储过程脚本。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于中国银行股份有限公司,未经中国银行股份有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/202010572972.3/2.html,转载请声明来源钻瓜专利网。