Estou no processo de revisar todas as instruções SQL que um aplicativo faz no banco de dados, por razões de desempenho. Existe uma maneira fácil de registrar todas as instruções executadas pelo servidor de banco de dados PostgreSQL? Obrigado.
database
sql
postgresql
Jin Kim
fonte
fonte
Respostas:
A opção de configuração que você está procurando é
log_statement = "all"
(se você apenas deseja as instruções) oulog_min_statement_duration = <some number>
se está apenas após consultas "lentas" (para algum valor de "lento"). Consulte http://www.postgresql.org/docs/current/static/runtime-config-logging.html para obter mais detalhes sobre a configuração de log.fonte
explain analyze
uma consulta lenta no empate em que foi executado. Você pode começar a testar com isso, pois o 8.4 ainda não foi lançado, mas é uma boa opção saber que aconteceu no momento da execução. , se a analisar explicar saída é OK você provavelmente está correndo em problemas com I / o ou limites de CPU, mas pelo menos você vai saber que não é a própria consultaO
auto_explain
módulo é muito útil para isso. Ele não apenas registra as instruções, mas também registra seus planos de execução e pode até registrar as instruções executadas nas funções do PL / PgSQL. O impacto no desempenho é razoavelmente baixo, a menos que você ative a análise; nesse caso, você incorre em um pouco de tempo para todas as consultas.Veja
auto_explain
na documentação.fonte
auto_explain
, está na lista de módulos abençoados. Consulte a documentação em docs.aws.amazon.com/AmazonRDS/latest/UserGuide/…Obviamente, você pode detectar as consultas mais lentas por conta própria, mas eu recomendo que você use o pgFouine - um analisador de logs do PostgreSQL. É fácil de instalar e realmente útil.
Relatórios de amostra: aqui e aqui .
fonte