Come posso cronometrare le interrogazioni SQL usando psql?


Risposte:


321

Attiva il tempismo inserendo:

\timing


1
Da out bash, l'opzione "-c" di psqlnon consente questa impostazione. Puoi farlo con qualcosa del tipo: psql --o /dev/null <<EOF \timing select 1 EOF
3manuek,

6
Oppure faipsql -c '\timing' -c 'select 1'
cdmckay il


12

Il tempo che \timingritorna include anche la latenza della rete, se ci si connette a un server remoto.

Quando non lo si desidera e non è necessario anche l'output della query, utilizzare meglio EXPLAIN ANALYZE, che genera il piano di query con le stime del planner più i tempi di esecuzione effettivi.

per esempio, EXPLAIN ANALYZE SELECT foo from bar ;


1
... l'unico problema è che non ricevi l'output di query normale.
dezso

2
L'uso di explain analyzetempi di resa è circa il doppio di quello che vedo quando utilizzo \timing, il che è l'opposto di quello che mi aspetterei in base ai commenti qui sulla latenza della rete. Ho il sospetto che ci sia un sovraccarico nell'esecuzione normale analyzeche si aggiunge al tempo di query. Sulla base dei documenti, penso che EXPLAIN (ANALYZE, TIMING OFF) SELECT foo FROM barti darà informazioni di tempismo più utili. Vedi postgresql.org/docs/9.6/static/sql-explain.html per i dettagli.
Larks
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.