Campaign Classic V7 - Cos'è il modulo db pg_stat_statement? A cosa serve?

Ultimo aggiornamento: 2022-09-29

Descrizione

  1. Che cos'è il modulo db pg_stat_statements?

  2. Perché viene richiesto di abilitare i client?

  3. Come viene attivato?

Risoluzione

  1. La pg_stat_statements Il modulo fornisce un mezzo per monitorare le 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 una memoria condivisa aggiuntiva. Ciò significa che è necessario riavviare il server per aggiungere o rimuovere il modulo.

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

  2. Implementare uno schema di tipo di visualizzazione in questa tabella che ci consente di monitorare le query che richiedono molto tempo. In questo modo i client potranno ottimizzare le prestazioni e ottimizzare quelle funzionalità.

    Questa estensione fornisce metriche sull'esecuzione delle query: che sono le query eseguite più frequentemente e quanto tempo ciascuna richiede.

  3. pg_stat_statements

    1. Verifica che PostgreSQL ufficiale contrib Il pacchetto per la versione postgres è installato.

      $ dpkg -l | grep postgres
       postgresql-contrib-9.3
      

      Se non è installato, installalo.

      $ apt-get install postgresql-contrib-9.3
      
    2. Modifica postgresql.conf per precaricare il modulo all’avvio

      Impostazione predefinita: shared_preload_libraries = ''

      Nuova: shared_preload_libraries = 'pg_stat_statements'

      Se utilizzi entrambi pg_stat_statements e auto_explain, utilizza un record ONE e separa con virgole:

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

      Nessuna creazione di estensione richiesta per auto_explain, solo per pg_stat_statements

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

      pg_stat_statements.max = 5000
      pg_stat_statements.track = all
      pg_stat_statements.save = on
      
    5. Riavvia il servizio postgresql

Esempio: Ottieni le 5 query più costose nei database

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;

In questa pagina