[发明专利]一种SQL执行效率静态分析方法在审
申请号: | 201811447657.7 | 申请日: | 2018-11-29 |
公开(公告)号: | CN109669952A | 公开(公告)日: | 2019-04-23 |
发明(设计)人: | 宓建栋 | 申请(专利权)人: | 杭州仟金顶信息科技有限公司 |
主分类号: | G06F16/242 | 分类号: | G06F16/242;G06F8/41 |
代理公司: | 杭州杭诚专利事务所有限公司 33109 | 代理人: | 尉伟敏 |
地址: | 310051 浙江*** | 国省代码: | 浙江;33 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 静态分析 规则库 抽象语法树 自定义 语句 标注 待测文件 检测分析 匹配处理 匹配引擎 使用规则 文件输入 详细信息 语法规则 准确率 运维 扫描 分析 工程师 输出 审核 替代 帮助 开发 | ||
1.一种SQL执行效率静态分析方法,其特征在于,包括以下步骤:
步骤S01:将SQL语法文件输入到JavaCC及JJTree中,生成SQL解析器;
步骤S02:将待测文件输入到SQL解析器中处理,生成SQL抽象语法树;
步骤S03:建立SQL语法规则库,所述规则库内包含若干种自定义语法规则;
步骤S04:使用规则匹配引擎通过SQL语法规则库对SQL抽象语法树进行匹配处理,标注出有问题的语句;
步骤S05:输出标注的语句及其详细信息。
2.根据权利要求1所述的一种SQL执行效率静态分析方法,其特征在于,所述步骤S02中,处理过程包括筛选出待测文件中的SQL语句并将SQL语句按对象归类,对归类完成后的SQL语句进行抽象化处理,所述对象名用大写字母开头的英文单词表示,所述对象包括Select及Where。
3.根据权利要求2所述的一种SQL执行效率静态分析方法,其特征在于,所述抽象化处理包括使用DSL抽象SQL语法的组成部分,用多层子对象的形式将组成部分进一步拆分。
4.根据权利要求1或3所述的一种SQL执行效率静态分析方法,其特征在于,所述步骤S03中,规则库的自定义语法规则通过DSL语言编写,包括若干种语法正确但执行效率低的语句形式。
5.根据权利要求4所述的一种SQL执行效率静态分析方法,其特征在于,所述步骤S04中,规则匹配引擎由搜索引擎及规则库生成。
6.根据权利要求5所述的一种SQL执行效率静态分析方法,其特征在于,所述步骤S04中,匹配处理过程为:将SQL抽象语法树中的内容按出现频率排降序,从序列的头部开始将语句的内容与规则库匹配,符合条件的语句保存至集合A,不符合条件的保存至集合B。
7.根据权利要求6所述的一种SQL执行效率静态分析方法,其特征在于,还设有二次校验:从所述集合B中随机抽取若干语句,对抽取的语句进行校验,如有问题语句则标出。
8.根据权利要求7所述的一种SQL执行效率静态分析方法,其特征在于,所述二次校验的执行方式为人工校验或通过神经网络训练后校验。
9.根据权利要求8所述的一种SQL执行效率静态分析方法,其特征在于,所述步骤S05中,详细信息包括语句在待测文件中的位置、语句中的问题部分及语句在待测文件中的出现频率。
10.根据权利要求1所述的一种SQL执行效率静态分析方法,其特征在于,所述步骤S02至步骤S04在执行时记录总用时。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于杭州仟金顶信息科技有限公司,未经杭州仟金顶信息科技有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201811447657.7/1.html,转载请声明来源钻瓜专利网。