Campaign Classic v7 - Finalidade e uso do módulo db pg_stat_statement

Saiba mais sobre a finalidade e o uso do módulo de banco de dados pg_stat_statements no Adobe Campaign Classic v7.

Descrição description

Ambiente

Adobe Campaign Classic v7 (ACC v7)

Problema/Sintomas

  1. O que é o módulo de banco de dados pg_stat_statements?

  2. Por que é solicitado pelos clientes a habilitar?

  3. Como ele é ativado?

Resolução resolution

  1. O módulo pg_stat_instructions fornece um meio de rastrear estatísticas de execução de todas as instruções SQL executadas por um servidor.

    O módulo deve ser carregado adicionando pg_stat_statements a shared_preload_libraries em postgresql.conf, pois ele requer memória compartilhada adicional.

    Isso significa que é necessário reiniciar o servidor para adicionar ou remover o módulo.

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

  2. Para implementar um esquema do tipo visualização nesta tabela, o que permite monitorar consultas que são demoradas.

    Dessa forma, os clientes poderão ajustá-los e otimizar o desempenho.

    Essa extensão fornece métricas sobre a execução de consultas: quais são as consultas executadas com mais frequência e quanto tempo cada uma leva.

  3. pg_stat_statements

    1. Verifique se o pacote de Contribub PostgreSQL oficial para a versão postgres está instalado.

      code language-none
      $ dpkg -l | grep postgres
      postgresql-contrib-9.3
      

      Se não estiver instalado, instale-o.

      code language-none
      $ apt-get install postgresql-contrib-9.3
      
    2. Alterar postgresql.conf para pré-carregar o módulo na inicialização.

      Padrão: shared_preload_libraries = ''

      Novo: shared_preload_libraries = 'pg_stat_statements'

      Se estiver usando pg_stat_statements e auto_explain, use o registro ONE e separe com vírgulas.

      code language-none
      shared_preload_libraries = 'auto_explain,pg_stat_statements'
      
    3. No banco de dados que você deseja monitorar, execute a consulta CREATE:

      Nenhuma criação de extensão necessária para auto_explain, somente para pg_stat_statements.

      code language-none
      psql
      postgres=# \c mydatabase
      mydatabase=# CREATE EXTENSION pg_stat_statements;
      
    4. Na seção OPTIONS PERSONALIZADOS de postgresql.conf, adicione as linhas:

      code language-none
      pg_stat_statements.max = 5000
      pg_stat_statements.track = all
      pg_stat_statements.save = on
      
    5. Reinicie o serviço postgresql.

    Exemplo: obtenha as 5 consultas mais caras nos bancos de dados.

    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