[发明专利]一种SQL执行效率静态分析方法在审
申请号: | 201811447657.7 | 申请日: | 2018-11-29 |
公开(公告)号: | CN109669952A | 公开(公告)日: | 2019-04-23 |
发明(设计)人: | 宓建栋 | 申请(专利权)人: | 杭州仟金顶信息科技有限公司 |
主分类号: | G06F16/242 | 分类号: | G06F16/242;G06F8/41 |
代理公司: | 杭州杭诚专利事务所有限公司 33109 | 代理人: | 尉伟敏 |
地址: | 310051 浙江*** | 国省代码: | 浙江;33 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 静态分析 规则库 抽象语法树 自定义 语句 标注 待测文件 检测分析 匹配处理 匹配引擎 使用规则 文件输入 详细信息 语法规则 准确率 运维 扫描 分析 工程师 输出 审核 替代 帮助 开发 | ||
本发明公开了一种SQL执行效率静态分析方法,包括以下步骤:步骤S01:将SQL语法文件输入到JavaCC及JJTree中,生成SQL解析器;步骤S02:将待测文件输入到SQL解析器中处理,生成SQL抽象语法树;步骤S03:建立SQL语法规则库,所述规则库内包含若干种自定义语法规则;步骤S04:使用规则匹配引擎通过SQL语法规则库对SQL抽象语法树进行匹配处理,标注出有问题的语句;步骤S05:输出标注的语句及其详细信息。本发明可以根据自定义的检测分析规则,对工程中的SQL语句进行扫描和静态分析,帮助甚至替代工程师进行SQL语句的审核,提高开发和运维的效率,减少分析所用时间,提高分析的准确率。
技术领域
本发明涉及一种代码分析方法,特别涉及一种SQL执行效率静态分析方法。
背景技术
在业务系统的开发中经常会用到大量用于数据库操作的SQL语句。这些SQL语句的执行效率会在很大程度上影响到系统的性能和稳定性。为了保证软件产品中的SQL语句达到期待的设计目标,软件开发和运维团队会采取很多种方法,这些方法大致可以分为2类:一种是动态监控方法,软件产品上线之后,通过监控软件实际运行时生成的SQL语句的执行时间,CPU使用率,IO效率等,当测定值超过预设的某个阈值就产生报警;另一种是静态分析方法,在软件开发过程中,通过有经验的软件工程师对SQL的代码审核,发现SQL中潜在的性能问题或者正确性问题,并及时修正。
上述传统方案中,动态监控方法不能做到事先防范,静态分析人力成本较高,需要投入大量的代码审查时间且依赖于工程师的经验和技术水平。
公开号 CN107480296A的发明申请提出一种基于SQL的数据库性能分析方法和装置,其中,方法包括:从数据库的日志中,提取SQL指令,对提取到的SQL指令进行分析,得到数据库根据SQL指令进行查询的运行信息,根据运行信息进行统计,分别得到多个性能参数。
该对比文件中的分析方法本质上即为统计分析,使用效率及准确度不高。
发明内容
针对现有技术分析的效率及精确性不高的问题,本发明公开了一种SQL执行效率静态分析方法,通过设定的规则对SQL抽象语法树进行匹配,加快了分析速度,减少了分析时间,提高了分析准确度。
以下是本发明的技术方案。
一种SQL执行效率静态分析方法,包括以下步骤:
步骤S01:将SQL语法文件输入到JavaCC及JJTree中,生成SQL解析器;
步骤S02:将待测文件输入到SQL解析器中处理,生成SQL抽象语法树;
步骤S03:建立SQL语法规则库,所述规则库内包含若干种自定义语法规则;
步骤S04:使用规则匹配引擎通过SQL语法规则库对SQL抽象语法树进行匹配处理,标注出有问题的语句;
步骤S05:输出标注的语句及其详细信息。
本发明可以根据自定义的检测分析规则,对工程中的SQL语句进行扫描和静态分析,帮助甚至替代工程师进行SQL语句的审核,提高开发和运维的效率。
进一步的,所述步骤S02中,处理过程包括筛选出待测文件中的SQL语句并将SQL语句按对象归类,对归类完成后的SQL语句进行抽象化处理,所述对象名用大写字母开头的英文单词表示,所述对象包括Select及Where。
进一步的,所述抽象化处理包括使用DSL抽象SQL语法的组成部分,用多层子对象的形式将组成部分进一步拆分。
进一步的,所述步骤S03中,规则库的自定义语法规则通过DSL语言编写,包括若干种语法正确但执行效率低的语句形式。
进一步的,所述步骤S04中,规则匹配引擎由搜索引擎及规则库生成。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于杭州仟金顶信息科技有限公司,未经杭州仟金顶信息科技有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201811447657.7/2.html,转载请声明来源钻瓜专利网。