申请/专利权人:中国人寿保险股份有限公司
申请日:2020-11-11
公开(公告)日:2024-04-16
公开(公告)号:CN112395305B
主分类号:G06F16/242
分类号:G06F16/242;G06F21/56
优先权:
专利状态码:有效-授权
法律状态:2024.04.16#授权;2021.03.12#实质审查的生效;2021.02.23#公开
摘要:本发明提供一种SQL语句分析方法、装置、电子设备及存储介质。方法包括:对当前版本的待分析应用进行java字节码的静态分析和动态调用的扫描,得到全量SQL语句并合并,得到当前版本的SQL语句集合;判断数据库中是否存在先前版本的SQL语句集合,当存在时,按照类名,方法名和SQL语句进比较当前版本与先前版本的SQL语句集合,得到增量SQL语句;根据SQL特征信息分析增量SQL语句,判断是否存在危险SQL语句和慢SQL语句,当存在时进行预警。能够在应用上线之前,分析得到是否存在危险SQL语句和慢SQL语句,并在存在时进行预警。具有极大减小人力的消耗,减少分析时间,在生产前解决问题,提高开发效率。
主权项:1.一种SQL语句分析方法,其特征在于,包括:对当前版本的待分析应用进行java字节码的静态分析和动态调用的扫描,得到全量SQL语句并进行合并,得到当前版本的SQL语句集合,包括:接收待分析应用的不同类型的参数,所述参数包括待分析的压缩包、系统标识、名称和版本号,并将符合格式要求的文件加入classloader中;对class文件中的DAO字节码进行静态分析,获取对应的访问类的包路径或类名,得到访问数据库的方法;以方法为粒度进行扫描,提炼所有数据库的访问规则,得到静态常量的SQL语句和执行SQL语句的访问数据库的方法的调用方法;将调用方法下的不同分支对应的字节码绘制为有向图;通过有向图访问算法,查找每个执行路径的SQL语句,所述SQL语句包括存在SQL特征的静态常量的SQL语句和以输入参数形式传入的SQL语句;将所得的静态常量的SQL语句和执行路径的SQL语句,进行去重和参数合并,得到当前版本的SQL语句集合;判断数据库中是否存在先前版本的SQL语句集合,当存在时,按照类名,方法名和SQL语句比较当前版本的SQL语句集合与数据库中的先前版本的SQL语句集合,得到当前版本的增量SQL语句;根据SQL特征信息分析所述增量SQL语句,判断是否存在危险SQL语句和慢SQL语句,当存在时进行预警。
全文数据:
权利要求:
百度查询: 中国人寿保险股份有限公司 一种SQL语句分析方法、装置、电子设备及存储介质
免责声明
1、本报告根据公开、合法渠道获得相关数据和信息,力求客观、公正,但并不保证数据的最终完整性和准确性。
2、报告中的分析和结论仅反映本公司于发布本报告当日的职业理解,仅供参考使用,不能作为本公司承担任何法律责任的依据或者凭证。