Tôi muốn đo thời gian chạy của một số truy vấn SQL trong postgresql. Sử dụng thời gian tích hợp BASH, tôi có thể làm như sau:cách sử dụng GNU Time với đường ống
$ time (echo "SELECT * FROM sometable" | psql)
Tôi thích thời gian GNU, cung cấp nhiều định dạng hơn. Tuy nhiên tôi không biết làm thế nào để làm điều đó với đường ống. Để đơn giản, tôi sử dụng ls | wc
trong các ví dụ sau:
$ /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
Nếu tôi không nhóm các đường ống trong bất kỳ cách nào, nó không than phiền:
$ /usr/bin/time -f "%es" ls | wc
0.00s
Nhưng dường như, điều này chỉ đo phần đầu tiên của đường ống, như hiển thị trong ví dụ tiếp theo
$ /usr/bin/time -f "%es" ls | sleep 20
0.00s
Vì vậy, câu hỏi là cú pháp chính xác cho GNU Time với đường ống?
Giải pháp cuối cùng là hoàn hảo cho vấn đề của tôi. Những người khác linh hoạt hơn. Cảm ơn! – stderr