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

  1. Cos’è il modulo DB pg_stat_statements?

  2. Perché è richiesto dai client?

  3. Come viene attivato?

Risoluzione resolution

  1. 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_statements a shared_preload_libraries in postgresql.conf, perché richiede ulteriore memoria condivisa.

    Ciò significa che è necessario riavviare il server per aggiungere o rimuovere il modulo.

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

  2. 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.

  3. pg_stat_statements

    1. 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.3
      

      Se non è installato, installarlo.

      code language-none
      $ apt-get install postgresql-contrib-9.3
      
    2. Cambia postgresql.conf per precaricare il modulo all'avvio.

      Predefinito: shared_preload_libraries = ''

      Nuovo: shared_preload_libraries = 'pg_stat_statements'

      Se utilizzi entrambi pg_stat_statements e auto_explain, utilizza UNO e separati da virgole.

      code language-none
      shared_preload_libraries = 'auto_explain,pg_stat_statements'
      
    3. Nel database che si desidera monitorare, eseguire CREATE query:

      Non è richiesta la creazione di estensioni per auto_explain, solo per pg_stat_statements.

      code language-none
      psql
      postgres=# \c mydatabase
      mydatabase=# CREATE EXTENSION pg_stat_statements;
      
    4. Nella sezione OPTIONS PERSONALIZZATI di postgresql.conf, aggiungi le righe:

      code language-none
      pg_stat_statements.max = 5000
      pg_stat_statements.track = all
      pg_stat_statements.save = on
      
    5. 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;
    
recommendation-more-help
3d58f420-19b5-47a0-a122-5c9dab55ec7f