【技术实现步骤摘要】
SQL语句审核方法和系统
本专利技术涉及数据库SQL(structuredquerylanguage)语言
,尤其涉及一种SQL语句审核方法和系统。
技术介绍
数据库作为各种信息系统的核心部分,不规范的数据库操作容易导致事务响应超时、数据库故障等问题,直接影响整个应用的可用性,特别是在金融行业核心系统中,对系统运行的高可用和稳定性有特殊要求,系统中运行的所有SQL语句都必须纳入审核管理,做到上线有审核,出问题可追溯,并尽可能将问题暴露提前到研发测试阶段。因此,有必要对程序中的SQL语句进行审核,以保障系统的平稳运行。随着信息系统规模的不断增长,SQL语句数量巨大,在系统开发流程中对数据库操作的审核环节逐渐成为工作流瓶颈。传统的人工审核方式效率低,且人工判断容易疏漏,难以保证SQL审核的完全覆盖。业界现有的一些自动审核工具将人工审核规则自动化,审核规则过于简单,无法满足软件工程中版本质量检测体系和精细化管理的需求。
技术实现思路
针对现有技术中的问题,本专利技术提供一种SQL语句审核方法和系统 ...
【技术保护点】
1.一种SQL语句审核方法,其特征在于,包括:/n采用CityHash算法获取待审核SQL语句的指纹;/n根据所述指纹以及所述待审核SQL语句的元数据获取所述待审核SQL语句的SQL特征信息;/n根据所述SQL特征信息审核所述待审核SQL语句。/n
【技术特征摘要】
1.一种SQL语句审核方法,其特征在于,包括:
采用CityHash算法获取待审核SQL语句的指纹;
根据所述指纹以及所述待审核SQL语句的元数据获取所述待审核SQL语句的SQL特征信息;
根据所述SQL特征信息审核所述待审核SQL语句。
2.根据权利要求1所述的SQL语句审核方法,其特征在于,所述根据所述SQL特征信息审核所述待审核SQL语句,包括:
查询SQL特征信息缓存装置中是否已有所述SQL特征信息;
若是,将SQL特征信息缓存装置中的所述SQL特征信息对应的SQL审核结果作为所述待审核SQL语句的审核结果;
若否,查询SQL特征信息存储装置中是否已有所述SQL特征信息;
若所述SQL特征信息存储装置已有所述SQL特征信息,则将所述SQL特征信息存储装置中的所述SQL特征信息对应的SQL审核结果作为所述待审核SQL语句的审核结果;
若所述SQL特征信息存储装置没有所述SQL特征信息,对所述待审核SQL语句进行SQL静态审查和SQL动态审查。
3.根据权利要求2所述的SQL语句审核方法,其特征在于,所述对所述待审核SQL语句进行SQL静态审查和SQL动态审查,包括:
根据数据库对象定义对所述待审核SQL语句进行SQL静态审查;
若SQL静态审查未通过,则返回审核结果,并将所述待审核SQL语句的SQL特征信息及其对应的审核结果存入所述SQL特征信息缓存装置以及所述SQL特征信息存储装置;
若SQL静态审查通过,则对所述待审核SQL语句进行SQL动态审查。
4.根据权利要求3所述的SQL语句审核方法,其特征在于,所述对所述待审核SQL语句进行SQL动态审查,包括:
若所述待审核SQL语句为DML语句,则根据所述待审核SQL语句的生产环境数据库信息生成执行计划,进而根据所述执行计划审核所述待审核SQL语句,并将所述待审核SQL语句的SQL特征信息及其对应的审核结果存入所述SQL特征信息缓存装置以及所述SQL特征信息存储装置;
若所述待审核SQL语句为DDL语句,将生产环境与所述DDL语句相关DML语句的执行计划P1和数据分布统计信息导入开发环境,在所述开发环境根据生产环境数据分布统计信息生成所述待审核SQL语句投产后相关DML语句的执行计划P2,比较所述待审核SQL语句投产之前相关DML语句的执行计划P1和所述待审核SQL语句投产之后相关DML语句的执行计划P2,判断所述待审核SQL语句投产后,与所述待审核SQL语句相关的DML语句的查询效率变化情况,进而得到审核结果,并将所述待审核SQL语句的SQL特征信息及其对应的审核结果存入所述SQL特征信息缓存装置以及所述SQL特征信息存储装置。
5.根据权利要求1所述的SQL语句审核方法,其特征在于,所述采用CityHash算法计算待审核SQL语句的指纹之前,还包括:
采集程序代码中的SQL语句;
对所述SQL语句进行规范化。
6.一种SQL语句审核系统,其特征在于,包括:
CityHash加密单元,采用CityHash算法获取待审核SQL语句的指纹;
特征信息生成单元,根据所述指纹以及所述待审核SQL语句的元数据获取所述待审核SQL语句的SQL特征信息;
审核单元,...
【专利技术属性】
技术研发人员:夏康,林承军,刘静,李奇伟,
申请(专利权)人:中国工商银行股份有限公司,
类型:发明
国别省市:北京;11
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。