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
-
Qu’est-ce que le module db
pg_stat_statements
? -
Pourquoi l’activation est-elle demandée par les clients ?
-
Comment est-il activé ?
Résolution resolution
-
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
danspostgresql.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
-
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.
-
pg_stat_statements
-
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
-
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
etauto_explain
, utilisez l'enregistrement ONE et séparez-le par des virgules.code language-none shared_preload_libraries = 'auto_explain,pg_stat_statements'
-
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 pourpg_stat_statements
.code language-none psql postgres=# \c mydatabase mydatabase=# CREATE EXTENSION pg_stat_statements;
-
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
-
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;
-