Como cronometrar consultas SQL usando o psql?


Respostas:


321

Basta ativar o tempo digitando:

\timing


1
Desde o bash, a opção "-c" de psqlnão permite essa configuração. Você pode fazer isso com algo como: psql --o /dev/null <<EOF \timing select 1 EOF
3manuek

6
Ou façapsql -c '\timing' -c 'select 1'
cdmckay


12

O tempo que \timingretorna também inclui a latência da rede, se você estiver se conectando a um servidor remoto.

Quando você não desejar isso e também não precisar da saída da consulta, use melhor EXPLAIN ANALYZE, que gera o plano de consulta com as estimativas do planejador, mais os tempos de execução reais.

por exemplo, EXPLAIN ANALYZE SELECT foo from bar ;


1
... o único problema é que você não recebe a saída normal da consulta.
Dez17

2
O uso de explain analyzetempos de produção aproximadamente o dobro do que eu vejo ao usar \timing, que é o oposto do que eu esperaria com base nos comentários aqui sobre a latência da rede. Suspeito que exista sobrecarga na execução normal analyzeque aumenta o tempo de consulta. Com base nos documentos, acho que EXPLAIN (ANALYZE, TIMING OFF) SELECT foo FROM barfornecerá informações de tempo mais úteis. Veja postgresql.org/docs/9.6/static/sql-explain.html para obter detalhes.
larsks
Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.