There are actually several ways you can time a query, and each has value depending on what you want to measure. You can time a query at
the server (from the time it arrives until the time it completes) by setting the server parameter log_min_duration_statement = 0.
However, that does not measure the network overhead, which can be done using \timing in psql. Then there is the connection and
application overhead that is measured by time at the command-line. This command measures all three aspects of a query:
$ time PGOPTIONS='-c log_min_duration_statement=0 -c client_min_messages=log' psql <<END
Timing is on.
LOG: duration: 0.318 ms statement: select 1;
Time: 0.435 ms
Continue Reading »