基于Mybatis框架进行慢查询操作统计的方法技术

技术编号:22166844 阅读:31 留言:0更新日期:2019-09-21 10:33
本发明专利技术提出一种基于Mybatis框架进行慢查询操作统计的方法,属于数据库技术领域。本发明专利技术解决了目前软件程序执行过程中,定位慢查询较为繁琐的问题,其技术方案要点为:定义慢查询时间阈值;获取执行目标查询操作之前的时间;执行目标查询操作;获取执行目标查询操作之后的时间;计算目标查询操作的整体执行时间,如果大于阈值,则获取执行对象,文件存储对应的慢查询语句。本发明专利技术通过对数据库操作时长大于指定时间的查询操作进行查询统计,迅速定位影响程序正常运行的业务功能模块,对相应的操作进行优化,提升系统执行效率。

Statistical Method of Slow Query Operations Based on Mybatis Framework

【技术实现步骤摘要】
基于Mybatis框架进行慢查询操作统计的方法
本专利技术涉及数据库技术,特别涉及基于Mybatis框架进行慢查询操作统计的方法的技术。
技术介绍
在软件开发过程中,与数据库进行交互是软件程序最为重要的一个节点,在进行数据库的操作过程中,数据库操作时长是衡量程序性能的一个重要指标,同时也是影响用户感知度的一个重要参考值。在目前的数据库慢查询统计中,目前主要使用2种统计方案:1、程序执行日志查询统计,程序日志包含了所有执行动作。通过去海量日志记录中,定位慢查询。该方案弊端在于要通过海量的日志记录去定位慢查询,会消耗大量的人工时间,且存在部分数据遗漏统计的风险。2、通过数据库本身的查询统计进行慢查询统计。该方案的弊端在于,数据库服务器需要开启相应的权限,并且需要专业人员进行操作,限制了普通开发人员的定位操作。
技术实现思路
本专利技术的目的是提供一种基于Mybatis框架进行慢查询操作统计的方法,解决目前软件程序执行过程中,定位慢查询较为繁琐的问题。本专利技术解决其技术问题,采用的技术方案是:基于Mybatis框架进行慢查询操作统计的方法,包括如下步骤:步骤1、定义慢查询时间阈值;步骤2、获取执行目标查询操作之前的时间;步骤3、执行目标查询操作;步骤4、获取执行目标查询操作之后的时间;步骤5、计算目标查询操作的整体执行时间,如果大于阈值,则获取执行对象,文件存储对应的慢查询语句。具体的是,步骤3中,在执行目标查询操作时,通过动态代理方式,对执行目标查询操作进行增强处理。进一步的是,在步骤1之前,还包括如下步骤:a、在项目中增加mybtais组件对应jar,版本在3.0及以上;b、在项目中自定义java类SlowSqlCountPlugin,实现Interceptor接口;c、确定拦截签名,即在自定义类上指定签名;d、在自定义类的intercept方法中实现业务逻辑代码;e、在项目中mybatis-config配置文件中加入插件配置。具体的是,步骤b中,Interceptor接口是mybatis提供的用于插件开发的接口,里面有3个方法需要开发者自定义实现逻辑方法,具体为:intercept:业务逻辑实现,对mybatis的操作进行拦截增强处理,实现自定义的业务逻辑处理;plugin:拦截器用于封装目标对象的,通过该方法返回目标对象本身,或返回一个它的代理,当返回的是代理的时候能够对其中的方法进行拦截来调用intercept方法;setProperties:读取配置文件,用于业务逻辑方法所需要的参数配置。进一步的是,步骤c中,确定拦截签名时,在自定义的拦截类中,需要明确指出具体执行类的执行方法进行拦截。具体的是,所述指定拦截的类为StatementHandler,指定的拦截方法为query查询方法。本专利技术的有益效果是,通过上述基于Mybatis框架进行慢查询操作统计的方法,通过对数据库操作时长大于指定时间的查询操作进行查询统计,迅速定位影响程序正常运行的业务功能模块,对相应的操作进行优化,提升系统执行效率,并且,本专利技术在对慢查询操作定位统计时,不需要专业人员去数据库服务器进行操作,普通开发人员即可针对性的做出相应的优化处理。同时,本专利技术只需要在项目中进行简单的编码工作,不需要专业人员进行数据库进行监控操作,减轻原本的在海量日志中进行查询语句定位工作,大量减少了开发及运维人员工作量,提高了工作效率。附图说明图1为本专利技术基于Mybatis框架进行慢查询操作统计的方法的流程图。具体实施方式下面结合附图,详细描述本专利技术的技术方案。本专利技术所述基于Mybatis框架进行慢查询操作统计的方法,其流程图参见图1,其中,该方法包括如下步骤:步骤1、定义慢查询时间阈值。步骤2、获取执行目标查询操作之前的时间。步骤3、执行目标查询操作。步骤4、获取执行目标查询操作之后的时间。步骤5、计算目标查询操作的整体执行时间,如果大于阈值,则获取执行对象,文件存储对应的慢查询语句。上述方法的步骤3中,在执行目标查询操作时,可以通过动态代理方式,对执行目标查询操作进行增强处理。并且,在步骤1之前,还可以包括如下步骤:a、在项目中增加mybtais组件对应jar,版本在3.0及以上,能够保证组件的兼容性和运行效率。b、在项目中自定义java类SlowSqlCountPlugin,实现Interceptor接口。c、确定拦截签名,即在自定义类上指定签名。d、在自定义类的intercept方法中实现业务逻辑代码。e、在项目中mybatis-config配置文件中加入插件配置。上述方法的步骤b中,Interceptor接口是mybatis提供的用于插件开发的接口,里面有3个方法需要开发者自定义实现逻辑方法,具体为:intercept:业务逻辑实现,对mybatis的操作进行拦截增强处理,实现自定义的业务逻辑处理。本专利技术的主要业务逻辑在该方法中实现。plugin:拦截器用于封装目标对象的,通过该方法我们可以返回目标对象本身,也可以返回一个它的代理。当返回的是代理的时候我们可以对其中的方法进行拦截来调用intercept方法。setProperties:读取配置文件,用于业务逻辑方法所需要的参数配置。步骤c中,确定拦截签名时,在自定义的拦截类中,需要明确指出具体执行类的执行方法进行拦截。在本专利技术中,指定拦截的类为StatementHandler,指定的拦截方法为query查询方法。StatementHadler类:作用是使用数据库的Statement或PrepareStatement执行操作,启承上启下作用。query方法:所有的查询数据库方法都会统一从该方法查询。Statement参数:对应的操作数据库的statement或者prepareSatement实际对象。ResultHandler:操作完数据库后,对返回结果进行统一映射处理的类。并且,将自定义的拦截器类配置在项目中,在程序执行数据库查询的操作过程中,执行statementHandler类对应的query方法时,会扫描对statementHandler类所有的拦截类,执行对应的自定义方法。在程序执行过程中,所有查询语句如果超过既定设置阈值的时长,会针对性的保存相关语句,对应开发人员及运维人员可根据对应的查询语句进行对应调优。本文档来自技高网...

【技术保护点】
1.基于Mybatis框架进行慢查询操作统计的方法,其特征在于,包括如下步骤:步骤1、定义慢查询时间阈值;步骤2、获取执行目标查询操作之前的时间;步骤3、执行目标查询操作;步骤4、获取执行目标查询操作之后的时间;步骤5、计算目标查询操作的整体执行时间,如果大于阈值,则获取执行对象,文件存储对应的慢查询语句。

【技术特征摘要】
1.基于Mybatis框架进行慢查询操作统计的方法,其特征在于,包括如下步骤:步骤1、定义慢查询时间阈值;步骤2、获取执行目标查询操作之前的时间;步骤3、执行目标查询操作;步骤4、获取执行目标查询操作之后的时间;步骤5、计算目标查询操作的整体执行时间,如果大于阈值,则获取执行对象,文件存储对应的慢查询语句。2.根据权利要求1所述的基于Mybatis框架进行慢查询操作统计的方法,其特征在于,步骤3中,在执行目标查询操作时,通过动态代理方式,对执行目标查询操作进行增强处理。3.根据权利要求1所述的基于Mybatis框架进行慢查询操作统计的方法,其特征在于,在步骤1之前,还包括如下步骤:a、在项目中增加mybtais组件对应jar,版本在3.0及以上;b、在项目中自定义java类SlowSqlCountPlugin,实现Interceptor接口;c、确定拦截签名,即在自定义类上指定签名;d、在自定义类的intercept方法中实现业务逻辑代码;e、在项目中mybatis-config配置文件中加入...

【专利技术属性】
技术研发人员:孙小波
申请(专利权)人:四川长虹电器股份有限公司
类型:发明
国别省市:四川,51

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1