There is already a question "How can I time SQL-queries using psql?" but I am missing answer how to do that from command line. How to run script with (optional) timing from command line – without
\timing [on|off] in the script, please?
You could use the shell command
postgres@db:$ time psql db -c 'SELECT 1' ?column? ---------- 1 (1 row) real 0m0.108s user 0m0.040s sys 0m0.032s
Or, to combine a meta command with an SQL command, you could pipe a string to psql:
postgres@db:~/script$ echo '\timing \\ SELECT 1;' | LANG=C psql Timing is on. ?column? ---------- 1 (1 row) Time: 0.000 ms
The special sequence
\\(two backslashes) marks the end of arguments and continues parsing SQL commands, if any. That way SQL and psql commands can be freely mixed on a line. But in any case, the arguments of a meta-command cannot continue beyond the end of the line.