[发明专利]海量SQL语句合并归类的方法及装置有效
申请号: | 201210396613.2 | 申请日: | 2012-10-18 |
公开(公告)号: | CN102945256A | 公开(公告)日: | 2013-02-27 |
发明(设计)人: | 钟小东;陈健;赖建华;张章学;蓝友枢 | 申请(专利权)人: | 福建省海峡信息技术有限公司 |
主分类号: | G06F17/30 | 分类号: | G06F17/30 |
代理公司: | 福州市鼓楼区博深专利代理事务所(普通合伙) 35214 | 代理人: | 林志峥 |
地址: | 350000 福建省福*** | 国省代码: | 福建;35 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 海量 sql 语句 合并 归类 方法 装置 | ||
技术领域
本发明涉及数据库,尤其涉及一种海量SQL语句合并归类的方法及装置。
背景技术
在目前很多大型企业如电子、金融、政府等都已经建立了符合自身需求的数据库及其管理系统,以加强对日益膨胀的数据仓库的管理。为了能够维持管理系统的稳定,要有专门的维护管理,日常管理中就少不了对数据库的监控分析。在目前的数据库监控分析中,对于SQL数据的分析挖掘,往往局限于操作方式及操作对象的分析,操作方式及操作对象的关联松散,会导致由于数据量庞大,数据繁杂,语义复杂,难以查找识别异常操作,工作量繁琐且巨大,浪费了大量的人力资源和时间。
通过对现有技术的分析,总结出了下述缺点。
缺点1:操作方式及操作对象的关联松散,仅有这两个值并不能确定语意。
缺点2:相似的SQL语句之间没有归类合并,导致数据量庞大,查找困难。
缺点3:没有具体的语意,导致匹配不准确,容易出现误报。
发明内容
本发明主要解决的技术问题是提供一种海量SQL语句合并归类的方法及装置,用以解决现有技术的诸多不足。
为解决上述问题,本发明采用的一种技术方案是:提供一种海量SQL语句合并归类的方法,包括:
S1、分析数据库环境,采集运行系统中所有的SQL语句;
S2、对每条所述SQL语句进行解析,得到所述SQL语句中的变量值;并将所述变量值用常量替换,得到解析后SQL语句;
S3、计算并得到所述解析后SQL语句的HASH值,根据所述HASH值将所述SQL语句归类合并,并将归类合并后的结果存储;其中,解析后SQL语句相同的SQL语句为相似SQL语句。
其中,所述S3中根据所述HASH值将所述SQL语句归类合并包括:检测所述运行系统中是否已存储所述HASH值,并检测到没有存储所述HASH值的情况下存储所述HASH值,且将所述HASH值对应的解析后SQL语句存储至运行系统预置的相似语句表中。
其中,所述S3中还包括:统计所述HASH值的出现次数。
其中,所述S3之后还包括:S4、获取S3统计的所述HASH值的出现次数,并根据获取到的HASH值的出现次数生成相似SQL语句的出现频率图。
为解决上述问题,本发明采用的另一种技术方案是:提供一种海量SQL语句合并归类的装置,包括:
采集模块,用于分析数据库环境,采集运行系统中所有的SQL语句;
解析模块,用于对每条所述SQL语句进行解析,得到所述SQL语句中的变量值;并将所述变量值用常量替换,得到解析后SQL语句;
归类模块,用于计算并得到所述解析后SQL语句的HASH值,根据所述HASH值将所述SQL语句归类合并,并将归类合并后的结果存储;其中,解析后SQL语句相同的SQL语句为相似SQL语句。
其中,所述归类模块包括:检测子单元,用于检测所述运行系统中是否已存储所述HASH值,并检测到没有存储所述HASH值的情况下存储所述HASH值,且将所述HASH值对应的解析后SQL语句存储至运行系统预置的相似语句表中。
其中,所述归类模块还包括:统计子单元,用于统计所述HASH值的出现次数。
其中,获取模块,用于获取归类模块统计的所述HASH值的出现次数,并根据获取到的HASH值的出现次数生成相似SQL语句的出现频率图。
本发明的有益效果是:区别于现有技术的诸多不足,本发明提供一种海量SQL语句合并归类的方法及装置,通过本发明提供的技术方案,得到了相似SQL语句及其唯一的HASH值,实现了SQL语句的归类及合并;那么对于一个每天都重复着同样的操作的被审计监控的系统,其系统中有了大量的相似语句,被原始SQL语句占据的空间就大大减少,这样大大节省了存储空间,并且由于数据量的急剧减少,数据查询效率大幅度提升。进一步可以理解的是,在一个稳定的被审计监控的系统中,相似语句数量是会处于一个稳定的状态,并且随着审计系统的运行,数量将慢慢地不再增加。
附图说明
图1为一实施方式中海量SQL语句合并归类的方法的流程图;
图2为上述实施方式中S3的具体流程图;
图3为另一实施方式中海量SQL语句合并归类的方法的流程图;
图4为一实施方式中海量SQL语句合并归类的装置的功能模块图;
图5为上述实施方式中归类模块的功能模块图;
图6为另一实施方式中海量SQL语句合并归类的装置的功能模块图。
标号说明:
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于福建省海峡信息技术有限公司,未经福建省海峡信息技术有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201210396613.2/2.html,转载请声明来源钻瓜专利网。