MybatisPlus integra el análisis SQL del componente p6spy

Tabla de contenido

 p6spy

¿Por qué Java necesita? 

cómo utilizar

otra configuración


 p6spy

 P6spy es un proyecto de código abierto, que generalmente se usa para rastrear las operaciones de la base de datos y ver las declaraciones SQL ejecutadas durante la ejecución del programa.

p6spy secuestra la fuente de datos de la aplicación, y la base de datos de operación de la aplicación en realidad llama a la fuente de datos de p6spy. Después de que p6spy secuestra declaraciones como SQL o HQL que deben ejecutarse, llama a un realDatasource por sí mismo y luego opera base de datos

P6Spy es una aplicación Java de código abierto que puede interceptar y registrar llamadas JDBC (Java Database Connectivity) para que los desarrolladores puedan realizar más fácilmente la depuración de bases de datos y la optimización del rendimiento. P6Spy puede ayudar a los desarrolladores a diagnosticar consultas lentas y otros problemas de bases de datos al proporcionar información como información de depuración de bases de datos y tiempo de ejecución de SQL.

Las aplicaciones de P6Spy incluyen:

  1. Supervise y registre llamadas JDBC: P6Spy puede interceptar declaraciones SQL enviadas a la base de datos por los controladores JDBC y registrarlas para su posterior análisis.

  2. Rendimiento de consultas estadísticas: P6Spy puede registrar información relacionada con el rendimiento, como el tiempo de ejecución de SQL, el tiempo de apertura y cierre de la conexión y el tiempo de confirmación y reversión de la transacción.

  3. Analizar consultas lentas: P6Spy ayuda a los desarrolladores a encontrar y depurar consultas SQL lentas para optimizar el rendimiento de las consultas.

  4. Predecir el comportamiento del sistema: al utilizar P6Spy, los desarrolladores pueden obtener información sobre la carga del sistema y el rendimiento de la base de datos para optimizar la configuración del sistema y el uso de recursos.

¿Por qué Java necesita? 

 En nuestro trabajo diario de desarrollo, es inevitable verificar la declaración SQL ejecutada por el programa actual y comprender su tiempo de ejecución, para analizar si existe un problema de SQL lento. Podemos utilizar la función de análisis e impresión de SQL proporcionada por MybatisPlus para obtener el tiempo de ejecución de las declaraciones SQL.

Las declaraciones SQL se pueden interceptar a través de P6Spy, que es equivalente a un registrador de declaraciones SQL, de modo que podamos usarlo para análisis relacionados, como el análisis de rendimiento. 

cómo utilizar

Funciones como el análisis de declaraciones SQL dependen del componente p6spy, por lo que primero debe introducir este componente en pom.xml.

<dependency>
    <groupId>p6spy</groupId>
    <artifactId>p6spy</artifactId>
    <version>3.9.1</version>
</dependency>

 Configurar en application.yml

spring:
  datasource:
    driver-class-name: com.p6spy.engine.spy.P6SpyDriver
    url: jdbc:p6spy:mysql

En recursos, cree un archivo de configuración spy.properties

#3.2.1以上使用modulelist=com.baomidou.mybatisplus.extension.p6spy.MybatisPlusLogFactory,com.p6spy.engine.outage.P6OutageFactory

# 自定义日志打印
logMessageFormat=com.baomidou.mybatisplus.extension.p6spy.P6SpyLogger

#日志输出到控制台
appender=com.baomidou.mybatisplus.extension.p6spy.StdoutLogger

# 使用日志系统记录 sql
#appender=com.p6spy.engine.spy.appender.Slf4JLogger

# 设置 p6spy driver 代理
deregisterdrivers=true

# 取消JDBC URL前缀
useprefix=true

# 配置记录 Log 例外,可去掉的结果集error,info,batch,debug,statement,commit,rollback,result,resultset.
excludecategories=info,debug,result,commit,resultset

# 日期格式
dateformat=yyyy-MM-dd HH:mm:ss

# 实际驱动可多个
#driverlist=org.h2.Driver

# 是否开启慢SQL记录
outagedetection=true

# 慢SQL记录标准 2 秒
outagedetectioninterval=2

Ejecute todas las operaciones de la consulta, puede ver el tiempo de ejecución de la declaración SQL

Configuración principal


Principalmente configuraciones relacionadas con [spring.datasource.driver-class-name] y [decorator.datasource.p6spy].

spring:
  datasource:
    url: jdbc:p6spy:postgresql://xxx.xx.xxx.xxx:2345/gpdb
    username: gpadmin
    password: gpadmin
    driver-class-name: com.p6spy.engine.spy.P6SpyDriver
    type: com.alibaba.druid.pool.DruidDataSource
decorator:
  datasource:
    p6spy:
      logging: file
      log-file: spy.log
      log-format: executionTime:%(executionTime) | sql:%(sqlSingleLine)

De forma predeterminada, se creará un archivo llamado spy.log en el directorio de trabajo actual. Para personalizar el registro (incluido el uso del marco de registro de su aplicación), puede proporcionar configuraciones alternativas en un archivo llamado spy.properties. Este archivo sólo necesita estar en la raíz del classpath. 

otra configuración

logging: el modo de archivo puede guardar toda la información SQL ejecutada. Cuando depuramos el proyecto, si solo necesitamos imprimir en la consola, la configuración es la siguiente:

decorator:
  datasource:
    p6spy:
      logging: slf4j

Supongo que te gusta

Origin blog.csdn.net/m0_62436868/article/details/132317494
Recomendado
Clasificación