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

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

Estou revisando todas as instruções 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.

Responder1

A opção de configuração que você está procurando é log_statement = "all"(se você deseja apenas as instruções) ou log_min_statement_duration = <some number>se deseja apenas consultas "lentas" (para algum valor de "lento"). Verhttp://www.postgresql.org/docs/current/static/runtime-config-logging.htmlpara obter mais detalhes sobre a configuração de log.

Responder2

O auto_explainmódulo é muito útil para isso. Ele não apenas registrará as instruções, mas também seus planos de execução e poderá até mesmo registrar instruções executadas em funções PL/PgSQL. O impacto no desempenho é bastante baixo, a menos que você habilite a análise; nesse caso, você incorrerá em uma sobrecarga de tempo razoável para todas as consultas.

Verauto_explainna documentação.

Responder3

Claro, você mesmo pode detectar as consultas mais lentas, mas eu aconselho você a usarpgFouine— um analisador de log PostgreSQL. É fácil de instalar e muito útil.

Exemplos de relatórios:aquieaqui.

informação relacionada