Thread: how do i find out how long a query took?

how do i find out how long a query took?

From
"Andy Kriger"
Date:
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



Re: how do i find out how long a query took?

From
Bruce Momjian
Date:
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

Re: how do i find out how long a query took?

From
Darren Ferguson
Date:
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


Re: how do i find out how long a query took?

From
Bruce Momjian
Date:
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

Re: how do i find out how long a query took?

From
"scott.marlowe"
Date:
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.