Campaign Classic v7 - Finalidad y uso del módulo db pg_stat_statements

Obtenga información sobre el propósito y el uso del módulo de base de datos pg_stat_statements en Adobe Campaign Classic v7.

Descripción description

Entorno

Adobe Campaign Classic v7 (ACC v7)

Problema/Síntomas

  1. ¿Qué es el módulo db? pg_stat_statements?

  2. ¿Por qué los clientes solicitan habilitar?

  3. ¿Cómo se activa?

Resolución resolution

  1. El módulo pg_stat_statements proporciona un medio para rastrear las estadísticas de ejecución de todas las sentencias SQL ejecutadas por un servidor.

    El módulo debe cargarse añadiendo pg_stat_statements hasta shared_preload_libraries in postgresql.conf, porque requiere memoria compartida adicional.

    Esto significa que es necesario reiniciar el servidor para agregar o quitar el módulo.

    Vínculo https://www.postgresql.org/docs/9.4/pgstatstatements.html

  2. Implementar un esquema de tipo de vista en esta tabla que nos permita monitorizar las consultas que tardan mucho tiempo.

    De este modo, los clientes podrán ajustarlas y optimizar el rendimiento.

    Esta extensión proporciona métricas sobre la ejecución de consultas: cuáles son las consultas que se ejecutan con más frecuencia y cuánto tiempo tarda cada una.

  3. pg_stat_statements

    1. Compruebe que esté instalado el paquete de contribución oficial de PostgreSQL para la versión postgres.

      code language-none
      $ dpkg -l | grep postgres
      postgresql-contrib-9.3
      

      Si no está instalado, instálelo.

      code language-none
      $ apt-get install postgresql-contrib-9.3
      
    2. Cambiar postgresql.conf para cargar previamente el módulo al inicio.

      Predeterminado: shared_preload_libraries = ''

      Nuevo: shared_preload_libraries = 'pg_stat_statements'

      Si se utilizan ambos pg_stat_statements y auto_explain, use UNO grabe y sepárelo con comas.

      code language-none
      shared_preload_libraries = 'auto_explain,pg_stat_statements'
      
    3. En la base de datos que desee supervisar, ejecute CREATE consulta:

      No se requiere la creación de extensiones para auto_explain, solo para pg_stat_statements.

      code language-none
      psql
      postgres=# \c mydatabase
      mydatabase=# CREATE EXTENSION pg_stat_statements;
      
    4. En la sección OPTIONS PERSONALIZADOS de postgresql.conf, añada las líneas:

      code language-none
      pg_stat_statements.max = 5000
      pg_stat_statements.track = all
      pg_stat_statements.save = on
      
    5. Reinicie el servicio postgresql.

    Ejemplo: Obtenga las 5 consultas más costosas de las bases de datos.

    code language-none
    SELECT query, calls, total_time, rows, 100.0*shared_blks_hit/nullif(shared_blks_hit+shared_blks_read,0) AS hit_percent
    from pg_stat_statements as s inner join pg_database as d on d.oid = s.dbid
    where d.datname = 'Database_Name'
    order by total_time desc limit 5;
    
recommendation-more-help
3d58f420-19b5-47a0-a122-5c9dab55ec7f