笼统来讲讲,任何系统都可以抽象为数据算法。而数据库作为数据的存储系统,其响应快慢直接影响着系统的整体性能。 目前很多大公司内部都有一些定制的监控系统,可以多维度采集数据,生成各种报表。 不过这样的系统维护成本比较高,甚至要专门的技术人员维护。如果是创业公司,可能不具备这种条件,不过我们可以通过一些简单方法,也能达到同样的效果。 比如通过SpringAOP机制,统计dao方法的调用时间,超过一定阈值,会打印到日志中。后面可以接入邮件系统,每天统计慢sql,了解系统的健康状况,及时优化各种潜在的风险。AspectComponentpublicclassDaoRTLogAspect{privatestaticfinalLoggerloggerLoggerFactory。getLogger(daoRTLog);Pointcut(execution(publiccom。onlyone。bbs。dal。dao。。。(。。)))publicvoiddaoLog(){}Around(daoLog())publicObjectprofile(ProceedingJoinPointpjp)throwsThrowable{Stringmethodpjp。getSignature()。toString();LongstartTimeSystem。currentTimeMillis();try{returnpjp。proceed();}finally{LongwasteTimeSystem。currentTimeMillis()startTif(wasteTime50){StringBuildersbnewStringBuilder();sb。append(method)。append(method)。append(,wasteTime)。append(wasteTime);logger。info(sb。toString());}}}}