[发明专利]一种SQL语句的性能分析方法及装置在审
申请号: | 202211426900.3 | 申请日: | 2022-11-15 |
公开(公告)号: | CN115687050A | 公开(公告)日: | 2023-02-03 |
发明(设计)人: | 文幸亮;暨光耀;傅媛媛;张晓娜 | 申请(专利权)人: | 中国工商银行股份有限公司 |
主分类号: | G06F11/34 | 分类号: | G06F11/34;G06F16/242;G06F21/56;G06N3/04 |
代理公司: | 北京三友知识产权代理有限公司 11127 | 代理人: | 王涛;任默闻 |
地址: | 100140 北*** | 国省代码: | 北京;11 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 sql 语句 性能 分析 方法 装置 | ||
本申请提供一种SQL语句的性能分析方法及装置,涉及人工智能领域,也可用于金融领域,所述方法包括:根据待分析源代码的特征属性解析所述待分析源代码,得到对应的待分析SQL语句;所述特征属性至少包括表数据量、语句数量及索引参数;根据所述特征属性确定所述待分析SQL语句的性能分析参数;所述性能分析参数包括静态分析参数及动态分析参数;将所述静态分析参数及动态分析参数输入预先构建的SQL语句性能分析模型,得到对应的性能分析结果。本申请能够通过静态动态相结合的方式,对待分析源代码中的SQL语句进行性能分析。
技术领域
本申请涉及人工智能领域,可以用于金融领域,具体是一种SQL语句的性能分析方法及装置。
背景技术
随着人们对软件应用需求的不断提升,软件版本从需求提出到研发交付的周期越来越短。静态代码扫描作为检查代码质量的一个重要环节,可在项目编码提交前快速定位代码中潜在的错误,发现劣质代码,并提出对应的代码优化建议。
然而,现有的静态代码扫描工具在分析源码中SQL语句的静态参数时,至少存在如下问题:第一,现有的静态代码扫描工具偏重对SQL语句的语法进行分析。在分析时,会根据SQL语句的编写规范形成相应的检查规则。在一定程度上,检查规则相对刻板,难以适应各种各样的实际业务需求,引发误报。第二,现有的静态代码扫描工具在对SQL语句进行检查时,未在实际数据库环境中运行相应的代码,造成一定的检查误差。第三,现有的静态代码扫描工具未检查SQL语句在动态执行过程中的真实执行效果,未结合实际数据分布及数据量智能分析SQL语句的运行效率,导致在效率检查方面只能由人工进行。综上所述,现有的静态代码扫描工具在对SQL语句进行检查时,排查流程长、周期长,导致持续集成流程效率降低,影响软件交付。
发明内容
针对现有技术中的问题,本申请提供一种SQL语句的性能分析方法及装置,能够通过静态动态相结合的方式,对待分析源代码中的SQL语句进行性能分析。
为解决上述技术问题,本申请提供以下技术方案:
第一方面,本申请提供一种SQL语句的性能分析方法,包括:
根据待分析源代码的特征属性解析所述待分析源代码,得到对应的待分析SQL语句;所述特征属性至少包括表数据量、语句数量及索引参数;
根据所述特征属性确定所述待分析SQL语句的性能分析参数;所述性能分析参数包括静态分析参数及动态分析参数;
将所述静态分析参数及动态分析参数输入预先构建的SQL语句性能分析模型,得到对应的性能分析结果。
进一步地,所述根据待分析源代码的特征属性解析所述待分析源代码,得到对应的待分析SQL语句,包括:
根据所述待分析源代码的特征属性生成对应的语法树;
根据所述语法树中的关键词确定所述待分析SQL语句。
进一步地,所述静态分析参数包括:表数据量均值、表性能关注度、SQL语句复杂度及SQL语句索引匹配度;所述根据所述特征属性确定所述待分析SQL语句的性能分析参数,包括:
根据所述表数据量计算所述表数据量均值;
根据所述语句数量计算所述SQL语句复杂度;
根据所述索引参数计算所述SQL语句索引匹配度。
进一步地,所述性能分析参数包括:所述动态分析参数;所述动态分析参数包括:有效执行时间及历史执行明细比率;所述根据所述特征属性确定所述待分析SQL语句的性能分析参数,包括:
从历史数据库中获取所述待分析SQL语句的动态执行信息;所述动态执行信息至少包括执行总耗时、计算处理耗时、输入输出耗时及锁等待耗时;
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于中国工商银行股份有限公司,未经中国工商银行股份有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/202211426900.3/2.html,转载请声明来源钻瓜专利网。