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

    Collega 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. Modificare postgresql.conf per precaricare il modulo all'avvio.

      Predefinito: shared_preload_libraries = ''

      Nuovo: shared_preload_libraries = 'pg_stat_statements'

      Se utilizzi sia pg_stat_statements che auto_explain, usa il record ONE e separalo con virgole.

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

      Nessuna creazione di estensioni richiesta 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, aggiungere 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