postgresql で SQL クエリの実行時間を測定したいと考えています。BASH 組み込みの時間を使用すると、次のことができます。
$ time (echo "SELECT * FROM sometable" | psql)
より多くのフォーマットを提供する GNU time が好きです。しかし、パイプラインでそれを行う方法がわかりません。簡単にするためls | wc
に、次の例で使用します。
$ /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
パイプをグループ化しない場合、文句はありません。
$ /usr/bin/time -f "%es" ls | wc
0.00s
しかし、明らかに、これは次の例に示すように、パイプの最初の部分のみを測定します
$ /usr/bin/time -f "%es" ls | sleep 20
0.00s
問題は、パイプラインを使用した GNU Time の正しい構文は何ですか?