Voglio misurare il tempo di esecuzione di alcune query SQL in postgresql. Usando il tempo integrato di BASH, potrei fare quanto segue:come utilizzare Tempo GNU con pipeline
$ time (echo "SELECT * FROM sometable" | psql)
Mi piace il tempo GNU, che fornisce più formati. Tuttavia non so come farlo con la linea di tubazioni. Per semplicità, io uso ls | wc
nei seguenti esempi:
$ /usr/bin/time -f "%es" (ls | wc)
-bash: syntax error near unexpected token `('
$ /usr/bin/time -f "%es" "ls | wc"
/usr/bin/time: cannot run ls | wc: No such file or directory
Se non lo faccio gruppo del tubo in alcun modo, non si lamenta:
$ /usr/bin/time -f "%es" ls | wc
0.00s
Ma a quanto pare, questa misura solo la prima parte del tubo, come mostrando nella prossima esempio
$ /usr/bin/time -f "%es" ls | sleep 20
0.00s
Quindi la domanda è che cosa è la sintassi corretta per GNU tempo con la linea del tubo?
L'ultima soluzione è perfetta per il mio problema. Gli altri sono più flessibili. Grazie! – stderr