Campaign Classic v7 - Objectif et utilisation du module db pg_stat_statement

Découvrez l’objectif et l’utilisation du module db (base de données) pg_stat_statements dans Adobe Campaign Classic v7.

Description description

Environnement

Adobe Campaign Classic v7 (ACC v7)

Problème/Symptômes

  1. Qu’est-ce que le module db pg_stat_statements ?

  2. Pourquoi l’activation est-elle demandée par les clients ?

  3. Comment est-il activé ?

Résolution resolution

  1. Le module pg_stat_statement fournit un moyen pour suivre les statistiques d'exécution de toutes les instructions SQL exécutées par un serveur.

    Le module doit être chargé en ajoutant pg_stat_statements à shared_preload_libraries dans postgresql.conf, car il nécessite une mémoire partagée supplémentaire.

    Cela signifie qu’un redémarrage du serveur est nécessaire pour ajouter ou supprimer le module.

    Lien https://www.postgresql.org/docs/9.4/pgstatstatements.html

  2. Pour mettre en oeuvre un schéma de type vue sur cette table qui nous permet de suivre les requêtes qui prennent du temps.

    Les clients pourront ainsi les régler et optimiser les performances.

    Cette extension fournit des mesures sur les requêtes en cours d’exécution : les requêtes les plus fréquemment exécutées, ainsi que la durée de chacune d’elles.

  3. pg_stat_statements

    1. Vérifiez que le package de contrib PostgreSQL officiel pour la version postgres est installé.

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

      S’il n’est pas installé, installez-le.

      code language-none
      $ apt-get install postgresql-contrib-9.3
      
    2. Modifiez postgresql.conf pour précharger le module au démarrage.

      Par défaut: shared_preload_libraries = ''

      Nouveau : shared_preload_libraries = 'pg_stat_statements'

      Si vous utilisez pg_stat_statements et auto_explain, utilisez l'enregistrement ONE et séparez-le par des virgules.

      code language-none
      shared_preload_libraries = 'auto_explain,pg_stat_statements'
      
    3. Dans la base de données que vous souhaitez surveiller, exécutez la requête CREATE :

      Aucune création d’extension n’est requise pour auto_explain, uniquement pour pg_stat_statements.

      code language-none
      psql
      postgres=# \c mydatabase
      mydatabase=# CREATE EXTENSION pg_stat_statements;
      
    4. Dans la section OPTIONS personnalisées de postgresql.conf, ajoutez les lignes :

      code language-none
      pg_stat_statements.max = 5000
      pg_stat_statements.track = all
      pg_stat_statements.save = on
      
    5. Redémarrez le service postgresql.

    Exemple : obtenez les 5 requêtes les plus coûteuses dans les bases de données.

    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