Campaign Classic v7 - Objectif et utilisation du module db pg_stat_statement

En savoir plus sur l’objectif et l’utilisation du module db (database) pg_stat_statements dans Adobe Campaign Classic v7.

Description description

Environnement

Adobe Campaign Classic v7 (ACC v7)

Problème/Symptômes

  1. Présentation du 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 to shared_preload_libraries in 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. Modifier postgresql.conf pour précharger le module au démarrage.

      Valeur par défaut : shared_preload_libraries = ''

      Nouveau : shared_preload_libraries = 'pg_stat_statements'

      Si vous utilisez les pg_stat_statements et auto_explain, utilisez ONE Enregistrez et séparez-les 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 CREATE query :

      Aucune création d’extension 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