DAO层接口性能监控


####简介:

笼统来讲讲,任何系统都可以抽象为数据+算法。而数据库作为数据的存储系统,其响应快慢直接影响着系统的整体性能。

目前很多大公司内部都有一些定制的监控系统,可以多维度采集数据,生成各种报表。

不过这样的系统维护成本比较高,甚至要专门的技术人员维护。如果是创业公司,可能不具备这种条件,不过我们可以通过一些简单方法,也能达到同样的效果。

比如通过Spring AOP机制,统计dao方法的调用时间,超过一定阈值,会打印到日志中。后面可以接入邮件系统,每天统计慢sql,了解系统的健康状况,及时优化各种潜在的风险。

代码示例:

@Aspect
@Component
public class DaoRTLogAspect {private static final Logger logger = LoggerFactory.getLogger("daoRTLog");@Pointcut("execution(public * com.onlyone.bbs.dal.dao..*.*(..))")public void daoLog() {}@Around("daoLog()")public Object profile(ProceedingJoinPoint pjp) throws Throwable {String method = pjp.getSignature().toString();Long _startTime = System.currentTimeMillis();try {return pjp.proceed();} finally {Long _wasteTime = System.currentTimeMillis() - _startTime;if (_wasteTime > 50) {StringBuilder sb = new StringBuilder();sb.append("method=").append(method).append(",wasteTime=").append(_wasteTime);logger.info(sb.toString());}}}}

DAO层接口性能监控相关推荐

  1. # IDEA如何从dao层接口快速调转到xml文件

    最近进了新公司,闲来无事把自己的IDEA插件都安装全面一下,首先就是先安装的dao层接口调转到xml文件相关的插件,这个也在开发中经常用到,下面开始介绍吧! 第一步找到设置目录 第二步搜索Mybati ...

  2. 基于springdata JPA的dao层接口实现

    基于springdata JPA的dao层接口实现以及分页 1.[举例] 只需要继承 JpaRepository<实体类,主键类型> package com.tmall.tmallspri ...

  3. Mavn一个模块项目调用另一个模块的dao层接口

    说明 例如: 我有一个聚合工程 A,它下面多个子工程模块(B,C,D,E),我想把C.D.E中相同的数据库操作方法提取出来,放进B里面,然后在C.D.E中依赖B模块,然后调用dao层接口. 但是项目启 ...

  4. ssm框架dao层接口无法自动注入问题

    这个问题实在奇葩,我也没看过框架源码,估计就算看了也看不懂,目前发现在dao层接口上不能使用@Component注解,但是可以使用@Repository,也可以啥注解都不加.根据目前的情况观察只要加上 ...

  5. 接口 java性能_MyPerf4J 一个极快的Java接口性能监控和统计工具

    MyPerf4J 一个针对高并发.低延迟应用设计的高性能 Java 性能监控和统计工具. 价值 快速定位性能瓶颈 快速定位故障原因 优势 高性能: 单线程支持每秒 1600 万次 响应时间的记录,每次 ...

  6. Mybatis中DAO层接口没有写实现类,Mapper中的方法和DAO接口方法是怎么绑定到一起的...

    参考mybatis入门基础(二)----原始dao的开发和mapper代理开发 其实也就是通过接口名与mapper的id绑定在一起,通过SQL去写实现类,返回数据. 转载于:https://www.c ...

  7. mybatis简单案例源码详细【注释全面】——Dao层接口(UserMapper.java)

    /** * @Title: IUserDao.java * @Package org.dao * @Description: TODO该方法的主要作用: * @author A18ccms A18cc ...

  8. java basedaoimpl_java web项目DAO层通用接口BaseDao与实现类BaseDaoImpl

    在spring+hibernate的web项目中,处理数据层通常会使用Spring框架提供的HibernateTemplate类提供的方法.通常的用法是每一个实体类对应的去写DAO层的接口和实现类.每 ...

  9. php dao 接口,SSH中公共Dao层、Dao接口

    早做项目时候!为了优化代码可以创建公共类与接口 先写一个Dao层的公共接口,在里面实现增删改查等各种功能 public interface IBaseDao { //增加 public void sa ...

最新文章

  1. dagger android,dagger.android多模块项目实现
  2. Runtime----字典转模型
  3. 快速批量导入庞大数据到SQL SERVER数据库(ADO.NET)
  4. python调用centos防火墙_Centos7防火墙:Firewall基本使用命令,设置防火墙规则
  5. Java 稳步成长、Kotlin 崛起、Go 保持独特风格,2020 年各大编程语言发展趋势一览...
  6. 放之四海皆适用的设计原则(二)
  7. 他山之石 可以攻玉-《海量数据库解决方案I》
  8. [渝粤教育] 江西理工大学 新融合大学英语(I) 参考 资料
  9. 数据库优化实践【信息跟踪篇】
  10. 电脑端OneNote2019(win10系统)登录微软账号登陆错误报错误码0x80860010错误-已解决
  11. python中datetime模块是以什么时间为基础_python基础-time和datetime模块
  12. leapftp 软件,leapftp 软件的5大功能
  13. Ubuntu18.04笔记本插入耳机没有声音 解决方案
  14. R和Rstudio 下载安装
  15. 刷固件版本 1756-RM2
  16. 为什么计算机连接不上打印机,为什么电脑连接打印机后却没反应
  17. 如何在Guitar Pro上添加吉他和弦
  18. 说说转义字符 “\”
  19. python 函数的返回值类型
  20. 亚马逊云科技在中国区域新推多项服务;德州仪器携手台达打造高效能服务器电源供应器 | 全球TMT...

热门文章

  1. 做一个项目,平时都用到哪些工具提高效率(上)【转】
  2. 你要了解的11款面向Linux系统的一流备份实用工具
  3. ubuntu 输入空白How to cd to folder name with spaces blank names (white space)
  4. flashAndPHP 简单交互
  5. 2020-08-07
  6. Linux的应用领域
  7. 【AI视野·今日NLP 自然语言处理论文速览 第十四期】Thu, 24 Jun 2021
  8. Java—多线程创建详解
  9. 华中科大10年计算机考研复试机试
  10. 结构数据类型 struce c# 1613533319