Postgres: Como posso ver todas as instruções SQL sendo executadas pelo servidor de banco de dados?

19

Estou no processo de revisar cada instrução SQL que um aplicativo faz no banco de dados, por motivos de desempenho. Existe uma maneira fácil de registrar todas as instruções executadas pelo servidor de banco de dados PostgreSQL? Obrigado.

    
por Jin Kim 04.06.2009 / 23:46

3 respostas

22

A opção de configuração que você está procurando é log_statement = "all" (se você quiser apenas as declarações), ou log_min_statement_duration = <some number> se você estiver apenas após consultas "lentas" (por algum valor de "lento"). Consulte o link para obter mais detalhes sobre a configuração do registro.

    
por 05.06.2009 / 01:07
3

Claro, você pode detectar consultas mais lentas sozinho, mas eu aconselho você a usar o pgFouine - um analisador de logs do PostgreSQL. É fácil de instalar e muito útil.

Exemplo de relatórios: aqui e aqui .

    
por 04.06.2009 / 23:53
2

O módulo auto_explain é muito útil para isso. Ele não apenas registrará as instruções, mas também registrará seus planos de execução e poderá até executar instruções de log dentro das funções PL / PgSQL. O impacto no desempenho é bastante baixo, a menos que você ative a análise. Nesse caso, você incorrerá em uma sobrecarga de tempo para todas as consultas.

Veja auto_explain na documentação.

    
por 21.03.2013 / 13:28