Campaign Classic v7 - Scopo e utilizzo del modulo db pg_stat_statements
Scopri lo scopo e l’utilizzo del modulo db (database) pg_stat_statements in Adobe Campaign Classic v7.
Descrizione description
Ambiente
Adobe Campaign Classic v7 (ACC v7)
Problema/Sintomi
-
Cos'è il modulo database
pg_stat_statements? -
Perché è richiesto dai client?
-
Come viene attivato?
Risoluzione resolution
-
Il modulo pg_stat_statements consente di tenere traccia delle statistiche di esecuzione di tutte le istruzioni SQL eseguite da un server.
Il modulo deve essere caricato aggiungendo
pg_stat_statementsashared_preload_librariesinpostgresql.conf, perché richiede ulteriore memoria condivisa.Ciò significa che è necessario riavviare il server per aggiungere o rimuovere il modulo.
Collega https://www.postgresql.org/docs/9.4/pgstatstatements.html
-
Per implementare uno schema del tipo di visualizzazione in questa tabella, che consente di monitorare le query che richiedono molto tempo.
In questo modo i client saranno in grado di regolarli e ottimizzare le prestazioni.
Questa estensione fornisce metriche sulle query in esecuzione: quali sono le query eseguite più frequentemente e quanto tempo ci vuole per ciascuna di esse.
-
pg_stat_statements-
Verificare che sia installato il pacchetto di distribuzione PostgreSQL ufficiale per la versione di Postgres.
code language-none $ dpkg -l | grep postgres postgresql-contrib-9.3Se non è installato, installarlo.
code language-none $ apt-get install postgresql-contrib-9.3 -
Modificare
postgresql.confper precaricare il modulo all'avvio.Predefinito:
shared_preload_libraries = ''Nuovo:
shared_preload_libraries = 'pg_stat_statements'Se utilizzi sia
pg_stat_statementscheauto_explain, usa il record ONE e separalo con virgole.code language-none shared_preload_libraries = 'auto_explain,pg_stat_statements' -
Nel database che si desidera monitorare, eseguire la query
CREATE:Nessuna creazione di estensioni richiesta per
auto_explain, solo perpg_stat_statements.code language-none psql postgres=# \c mydatabase mydatabase=# CREATE EXTENSION pg_stat_statements; -
Nella sezione OPTIONS PERSONALIZZATI di
postgresql.conf, aggiungere le righe:code language-none pg_stat_statements.max = 5000 pg_stat_statements.track = all pg_stat_statements.save = on -
Riavviare il servizio postgresql.
Esempio: ottieni le prime 5 query più costose nei database.
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; -