记录SQL语句的执行时间戳。 记录SQL语句类型 记录SQL填入参数的和没有填入参数的SQL语句 根据配置的时间控制SQL语句的执行时间,对超出时间的SQL语句输出到日志文件中 展示效果 可以看到打印的sql,执行时间,和打印sql所携带的参数 如何配置 1.在Pom文件中添加maven依赖 1 2 3 4 5 <dependency> <groupId>p6spy</g...
--ps:sqltiming和sqlonly差别是多打印了sql语句的耗时,如果不想要这个时间可以修改筛选里面的项。--> <logger name="jdbc.sqltiming" level="INFO"/> <logger name="jdbc.sqlonly" level="OFF"/> 4.配置文件中修改部分属性值 如图: 即: driver-class-name 修改为:net.sf.log4jdbc.sql.jdbcapi.DriverSpy...
接下来,我们需要编写一个工具类,用于统计SQL执行时间。这个工具类可以通过AOP切面来实现。 @Aspect@ComponentpublicclassSqlExecutionTimeAspect{privatestaticfinalLoggerlogger=LoggerFactory.getLogger(SqlExecutionTimeAspect.class);@Around("execution(* com.example.repository.*.*(..))")publicObjectlogExecutionTime(Pro...
pjd.proceed();方法代表去执行目标方法,并获得一个Object类型的返回值,我们可以对返回值进行加工处理,如装饰加工等。 return的值为方法执行的结果。上述代码中首先获取类名、方法名、方法请求参数等,进行打印的拼接,并且记录方法执行的开始时间,并进行打印至日志。 然后执行方法,获取到方法返回结果,进行打印执行时间和...
2,now:当前时间,毫秒值。3,elapsed:sql执行的耗时。需要注意的是这里的耗时指的是从发送sql到服务器截止到收到服务器响应结果的总耗时,而不是sql本身在服务器的执行时间。4,category:操作的类型,比如查询,更新,commit,rollback等。5,prepared:编译后的sql,不打印具体的参数。6,sql:具体的执行sql,...
打印sql 执行时间 有时候会比较关心程序运行的效率,尤其是数据库操作的效率,以便于后期优化,这时打印 sql 的执行时间即可监控影响性能的一些数据库操作进行针对性的优化。打印 sql 运行时间是一个典型的 AOP 插入日志的问题,很容易想到动态代理什么的,这里通过实现 ibatis 的拦截器org.apache.ibatis.plugin.Interceptor来...
log4j2:这个就是 日志记录的功能,可以把sql语句打印到log4j2 供排查问题。 2 添加依赖 pom.xml <!-- 阿里巴巴的druid数据源 --> <dependency> <groupId>com.alibaba</groupId> <artifactId>druid-spring-boot-starter</artifactId> <version>1.1.23</version> ...
configuration.setDefaultStatementTimeout(1);// 设置sql执行超时时间::(秒)factoryBean.setConfiguration(configuration); SqlSessionFactory sqlSessionFactory = factoryBean.getObject();returnsqlSessionFactory; }@Primary@Bean(name ="transactionManager")publicDataSourceTransactionManager gfTransactionManager(@Qualifier("...
3.5 完美的输出打印 SQL 及执行时长[MyBatis-Plus系列] 在我们日常开发工作当中,避免不了查看当前程序所执行的SQL语句,以及了解它的执行时间,方便分析是否出现了慢SQL问题。 MyBatis-Plus提供了两种SQL分析打印的方式,用于输出每条SQL语句及其执行时间,针对执行较长时间的SQL可以停止运行,有助于发现问题。