how do i find out how long a query took?

Started by Andy Krigerover 23 years ago5 messagesgeneral
Jump to latest
#1Andy Kriger
akriger@greaterthanone.com

Is there a psql function I can call after making a query to find out how
long the last query took? (e.g. after running a create index on a table with
a lot of records, I would like to know how long it took). I know I could do
this using JDBC and wrapping the query in getTimeMillis() but I'm curious if
psql has a built-in function or if the client has a utility cmd.

thx
andy

#2Bruce Momjian
bruce@momjian.us
In reply to: Andy Kriger (#1)
Re: how do i find out how long a query took?

Andy Kriger wrote:

Is there a psql function I can call after making a query to find out how
long the last query took? (e.g. after running a create index on a table with
a lot of records, I would like to know how long it took). I know I could do
this using JDBC and wrapping the query in getTimeMillis() but I'm curious if
psql has a built-in function or if the client has a utility cmd.

Yes, you can use \timing in psql:

test=> \timing
Timing is on.
test=> select * from pg_language;
lanname | lanispl | lanpltrusted | lanplcallfoid | lanvalidator |
lanacl
----------+---------+--------------+---------------+--------------+--------

sql | f | t | 0 | 2248 | {=U}
internal | f | f | 0 | 2246 | {=}
c | f | f | 0 | 2247 | {=}
(3 rows)

Time: 76.83 ms

and in 7.3 we will have log_duration which will send all query
durations to the server logs.

-- 
  Bruce Momjian                        |  http://candle.pha.pa.us
  pgman@candle.pha.pa.us               |  (610) 359-1001
  +  If your life is a hard drive,     |  13 Roberts Road
  +  Christ can be your backup.        |  Newtown Square, Pennsylvania 19073
#3Darren Ferguson
darren@crystalballinc.com
In reply to: Bruce Momjian (#2)
Re: how do i find out how long a query took?

select version();
version
-------------------------------------------------------------
PostgreSQL 7.2.1 on i686-pc-linux-gnu, compiled by GCC 2.96
(1 row)

\timing does not work gives following

oss=> \timing
Showing only tuples.
\t: extra argument 'iming' ignored

Any ideas ??? or was it just 7.2.2??

On Mon, 30 Sep 2002, Bruce Momjian wrote:

Andy Kriger wrote:

Is there a psql function I can call after making a query to find out how
long the last query took? (e.g. after running a create index on a table with
a lot of records, I would like to know how long it took). I know I could do
this using JDBC and wrapping the query in getTimeMillis() but I'm curious if
psql has a built-in function or if the client has a utility cmd.

Yes, you can use \timing in psql:

test=> \timing
Timing is on.
test=> select * from pg_language;
lanname | lanispl | lanpltrusted | lanplcallfoid | lanvalidator |
lanacl
----------+---------+--------------+---------------+--------------+--------

sql | f | t | 0 | 2248 | {=U}
internal | f | f | 0 | 2246 | {=}
c | f | f | 0 | 2247 | {=}
(3 rows)

Time: 76.83 ms

and in 7.3 we will have log_duration which will send all query
durations to the server logs.

--
Darren Ferguson

#4Bruce Momjian
bruce@momjian.us
In reply to: Darren Ferguson (#3)
Re: how do i find out how long a query took?

Darren Ferguson wrote:

select version();
version
-------------------------------------------------------------
PostgreSQL 7.2.1 on i686-pc-linux-gnu, compiled by GCC 2.96
(1 row)

\timing does not work gives following

oss=> \timing
Showing only tuples.
\t: extra argument 'iming' ignored

Any ideas ??? or was it just 7.2.2??

Oops, that is a 7.3 new feature. There isn't a way in 7.2.X. Perhaps
you can set your psql prompt to the current time but I can't figure out
how to do that either.

-- 
  Bruce Momjian                        |  http://candle.pha.pa.us
  pgman@candle.pha.pa.us               |  (610) 359-1001
  +  If your life is a hard drive,     |  13 Roberts Road
  +  Christ can be your backup.        |  Newtown Square, Pennsylvania 19073
#5scott.marlowe
scott.marlowe@ihs.com
In reply to: Bruce Momjian (#4)
Re: how do i find out how long a query took?

On Mon, 30 Sep 2002, Bruce Momjian wrote:

Darren Ferguson wrote:

select version();
version
-------------------------------------------------------------
PostgreSQL 7.2.1 on i686-pc-linux-gnu, compiled by GCC 2.96
(1 row)

\timing does not work gives following

oss=> \timing
Showing only tuples.
\t: extra argument 'iming' ignored

Any ideas ??? or was it just 7.2.2??

Oops, that is a 7.3 new feature. There isn't a way in 7.2.X. Perhaps
you can set your psql prompt to the current time but I can't figure out
how to do that either.

explain analyze in 7.2 should tell you how long the query took to run, but
won't give you the result set.