Thread: Change to 'timing on' globally
I know that we can toggle the timing at session level by using \timing in psql.
Thanks,
The New Busy is not the too busy. Combine all your e-mail accounts with Hotmail. Get busy.
Is there a way to set the default to 'timing on' globally across the database or atleast across all psql statements by a specificied user ?
Thanks,
-Bala
The New Busy is not the too busy. Combine all your e-mail accounts with Hotmail. Get busy.
Excerpts from Balkrishna Sharma's message of lun jul 05 13:00:44 -0400 2010: > > I know that we can toggle the timing at session level by using \timing in psql. > Is there a way to set the default to 'timing on' globally across the database or atleast across all psql statements bya specificied user ? .psqlrc ?
Thanks. If I want to do at system-wide level, where do I store the psqlrc file (assuming I want to change the timing behavior system-wide)?
> CC: pgsql-admin@postgresql.org
> Subject: Re: [ADMIN] Change to 'timing on' globally
> From: alvherre@commandprompt.com
> To: b_ki@hotmail.com
> Date: Mon, 5 Jul 2010 13:10:30 -0400
>
> Excerpts from Balkrishna Sharma's message of lun jul 05 13:00:44 -0400 2010:
> >
> > I know that we can toggle the timing at session level by using \timing in psql.
> > Is there a way to set the default to 'timing on' globally across the database or atleast across all psql statements by a specificied user ?
>
> .psqlrc ?
>
> --
> Sent via pgsql-admin mailing list (pgsql-admin@postgresql.org)
> To make changes to your subscription:
> http://www.postgresql.org/mailpref/pgsql-admin
Hotmail has tools for the New Busy. Search, chat and e-mail from your inbox. Learn more.
(CentOS 5, Postgres 8.4)
$ ./pg_config --sysconfdir
/opt/PostgreSQL/8.4/etc/postgresql
But I don't have /opt/PostgreSQL/8.4/etc/postgresql directory. Just creating the directory and putting a psqlrc file over there does not seem to work.
On a side-note, I observered that timing value in ~/.psqlrc was ignored by psql -c "..." command but not by echo "...."|psql
Thought it was strange.
> CC: pgsql-admin@postgresql.org
> Subject: Re: [ADMIN] Change to 'timing on' globally
> From: alvherre@commandprompt.com
> To: b_ki@hotmail.com
> Date: Mon, 5 Jul 2010 13:10:30 -0400
>
> Excerpts from Balkrishna Sharma's message of lun jul 05 13:00:44 -0400 2010:
> >
> > I know that we can toggle the timing at session level by using \timing in psql.
> > Is there a way to set the default to 'timing on' globally across the database or atleast across all psql statements by a specificied user ?
>
> .psqlrc ?
>
> --
> Sent via pgsql-admin mailing list (pgsql-admin@postgresql.org)
> To make changes to your subscription:
> http://www.postgresql.org/mailpref/pgsql-admin
Hotmail has tools for the New Busy. Search, chat and e-mail from your inbox. Learn more.
Balkrishna Sharma wrote: > > Thanks. If I want to do at system-wide level, where do I store the > psqlrc file (assuming I want to change the timing behavior system-wide)? > (CentOS 5, Postgres 8.4) > $ ./pg_config --sysconfdir/opt/PostgreSQL/8.4/etc/postgresql > But I don't have /opt/PostgreSQL/8.4/etc/postgresql directory. Just > creating the directory and putting a psqlrc file over there does not > seem to work. I just tested it here on Ubuntu and it worked: $ sudo mkdir etc $ sudo mkdir etc/postgresql $ cd etc/postgresql/ $ sudo vi psqlrc # add \echo test $ pwd /opt/PostgreSQL/8.4/etc/postgresql $ ../../bin/psql -U postgres postgres --> test psql (8.4.2) Type "help" for help. postgres=# > On a side-note, I observered that timing value in ~/.psqlrc was > ignored by psql -c "..." command but not by echo "...."|psqlThought > it was strange. Yeah, that is odd. -- Bruce Momjian <bruce@momjian.us> http://momjian.us EnterpriseDB http://enterprisedb.com + None of us is going to be here forever. +
> I just tested it here on Ubuntu and it worked:
> From: bruce@momjian.us
> Subject: Re: [ADMIN] Change to 'timing on' globally
> To: b_ki@hotmail.com
> Date: Tue, 6 Jul 2010 10:48:48 -0400
> CC: alvherre@commandprompt.com; pgsql-admin@postgresql.org
>
> Balkrishna Sharma wrote:
> >
> > Thanks. If I want to do at system-wide level, where do I store the
> > psqlrc file (assuming I want to change the timing behavior system-wide)?
>
> > (CentOS 5, Postgres 8.4)
> > $ ./pg_config --sysconfdir/opt/PostgreSQL/8.4/etc/postgresql
>
> > But I don't have /opt/PostgreSQL/8.4/etc/postgresql directory. Just
> > creating the directory and putting a psqlrc file over there does not
> > seem to work.
>
> I just tested it here on Ubuntu and it worked:
>
> $ sudo mkdir etc
> $ sudo mkdir etc/postgresql
> $ cd etc/postgresql/
> $ sudo vi psqlrc
> # add \echo test
> $ pwd
> /opt/PostgreSQL/8.4/etc/postgresql
> $ ../../bin/psql -U postgres postgres
> --> test
> psql (8.4.2)
> Type "help" for help.
>
> postgres=#
>
> > On a side-note, I observered that timing value in ~/.psqlrc was
> > ignored by psql -c "..." command but not by echo "...."|psqlThought
> > it was strange.
>
> Yeah, that is odd.
>
> --
> Bruce Momjian <bruce@momjian.us> http://momjian.us
> EnterpriseDB http://enterprisedb.com
>
> + None of us is going to be here forever. +
Hotmail is redefining busy with tools for the New Busy. Get more from your inbox. See how.
I followed your steps and it worked in the way you indicated, on CentOS as well. But it still does not:
a. work with psql -c "query" syntax. (Works in echo mode or in interactive mode.)
b. it does not still seem to work if you fire the queries from a client box (in any mode - interactive or otherwise)
ON SERVER I get:
Timing is on.
now
------------------------------
2010-07-06 11:06:13.16734-04
(1 row)
Time: 0.574 ms
ON CLIENT I just get:
now
-------------------------------
2010-07-06 11:06:28.455395-04
(1 row)
~~~~~~~~~~~~~~~~~~~~
Basically I am firing a lot of psql through unix script on several client machines and a lot of the psql are hanging for some other reasons. I also need to capture the timing of each query. So I need timing to be on.
Doing the following captures the timing but I don't know which psql statement is hanging when I do ps aux|grep psql
echo '\timing \\select * from ........' | psql
On ps aux|grep psql I just see:
> ps aux|grep psql
2255 0.0 0.0 155636 1668 pts/1 S Jul05 0:00 psql
3883 0.0 0.0 155636 1676 pts/1 S Jul05 0:00 psql
4672 0.0 0.0 155636 1672 pts/1 S Jul05 0:00 psql
4713 0.0 0.0 155636 1672 pts/1 S Jul05 0:00 psql
4737 0.0 0.0 155636 1672 pts/1 S Jul05 0:00 psql
4798 0.0 0.0 155636 1668 pts/1 S Jul05 0:00 psql
5050 0.0 0.0 155636 1676 pts/1 S Jul05 0:00 psql
5086 0.0 0.0 155636 1668 pts/1 S Jul05 0:00 psql
5405 0.0 0.0 155636 1668 pts/1 S Jul05 0:00 psql
7255 0.0 0.0 155644 1796 pts/1 S Jul05 0:00 psql
psql -c 'select * from "DAPP".student_common_data where student_id = 1000 and field_id =1988;' does make the ps aux more informative but it does not capture the query timing. From what I understand you cannot mix ('timing + query') in "-c" mode.
So trying to set 'timing on' outside the individual queries (and preferably outside the client machines) somewhere on the server so that psql -c on client would capture the timing automatically.
> From: bruce@momjian.us
> Subject: Re: [ADMIN] Change to 'timing on' globally
> To: b_ki@hotmail.com
> Date: Tue, 6 Jul 2010 10:48:48 -0400
> CC: alvherre@commandprompt.com; pgsql-admin@postgresql.org
>
> Balkrishna Sharma wrote:
> >
> > Thanks. If I want to do at system-wide level, where do I store the
> > psqlrc file (assuming I want to change the timing behavior system-wide)?
>
> > (CentOS 5, Postgres 8.4)
> > $ ./pg_config --sysconfdir/opt/PostgreSQL/8.4/etc/postgresql
>
> > But I don't have /opt/PostgreSQL/8.4/etc/postgresql directory. Just
> > creating the directory and putting a psqlrc file over there does not
> > seem to work.
>
> I just tested it here on Ubuntu and it worked:
>
> $ sudo mkdir etc
> $ sudo mkdir etc/postgresql
> $ cd etc/postgresql/
> $ sudo vi psqlrc
> # add \echo test
> $ pwd
> /opt/PostgreSQL/8.4/etc/postgresql
> $ ../../bin/psql -U postgres postgres
> --> test
> psql (8.4.2)
> Type "help" for help.
>
> postgres=#
>
> > On a side-note, I observered that timing value in ~/.psqlrc was
> > ignored by psql -c "..." command but not by echo "...."|psqlThought
> > it was strange.
>
> Yeah, that is odd.
>
> --
> Bruce Momjian <bruce@momjian.us> http://momjian.us
> EnterpriseDB http://enterprisedb.com
>
> + None of us is going to be here forever. +
Hotmail is redefining busy with tools for the New Busy. Get more from your inbox. See how.
Balkrishna Sharma wrote: > > > I just tested it here on Ubuntu and it worked:I followed your steps and it worked in the way you indicated, on CentOSas well. But it still does not:a. work with psql -c "query" syntax. (Works in echo mode or in interactive mode.)b.it does not still seem to work if you fire the queries from a client box (in any mode - interactive or otherwise)ONSERVER I get:Timing is on. now------------------------------ 2010-07-06 11:06:13.16734-04(1 row)Time:0.574 ms > > ON CLIENT I just get: now------------------------------- 2010-07-06 11:06:28.455395-04(1 row) > > ~~~~~~~~~~~~~~~~~~~~Basically I am firing a lot of psql through unix script on several client machines and a lot of thepsql are hanging for some other reasons. I also need to capture the timing of each query. So I need timing to be on. > Doing the following captures the timing but I don't know which psql statement is hanging when I do ps aux|grep psqlecho'\timing \\select * from ........' | psqlOn ps aux|grep psql I just see:> ps aux|grep psql2255 0.0 0.0 155636 1668 pts/1 S Jul05 0:00 psql3883 0.0 0.0 155636 1676 pts/1 S Jul05 0:00 psql4672 0.0 0.0 155636 1672 pts/1 S Jul05 0:00 psql4713 0.0 0.0 155636 1672 pts/1 S Jul05 0:00 psql4737 0.0 0.0 155636 1672 pts/1 S Jul05 0:00 psql4798 0.0 0.0 155636 1668 pts/1 S Jul05 0:00 psql5050 0.0 0.0 155636 1676 pts/1 S Jul05 0:00 psql5086 0.0 0.0 155636 1668 pts/1 S Jul05 0:00 psql5405 0.0 0.0 155636 1668 pts/1 S Jul05 0:00 psql7255 0.0 0.0 155644 1796 pts/1 S Jul05 0:00 psql > > psql -c 'select * from "DAPP".student_common_data where student_id = 1000 and field_id =1988;' does make the ps aux moreinformative but it does not capture the query timing. From what I understand you cannot mix ('timing + query') in "-c"mode. > So trying to set 'timing on' outside the individual queries (and preferably outside the client machines) somewhere on theserver so that psql -c on client would capture the timing automatically. I think you need to look at postgresql.conf variables like log_min_duration_statement, and you are right that psqlrc is only going to be read for clients on the server machine, and only via psql. --------------------------------------------------------------------------- > > > > > From: bruce@momjian.us > > Subject: Re: [ADMIN] Change to 'timing on' globally > > To: b_ki@hotmail.com > > Date: Tue, 6 Jul 2010 10:48:48 -0400 > > CC: alvherre@commandprompt.com; pgsql-admin@postgresql.org > > > > Balkrishna Sharma wrote: > > > > > > Thanks. If I want to do at system-wide level, where do I store the > > > psqlrc file (assuming I want to change the timing behavior system-wide)? > > > > > (CentOS 5, Postgres 8.4) > > > $ ./pg_config --sysconfdir/opt/PostgreSQL/8.4/etc/postgresql > > > > > But I don't have /opt/PostgreSQL/8.4/etc/postgresql directory. Just > > > creating the directory and putting a psqlrc file over there does not > > > seem to work. > > > > I just tested it here on Ubuntu and it worked: > > > > $ sudo mkdir etc > > $ sudo mkdir etc/postgresql > > $ cd etc/postgresql/ > > $ sudo vi psqlrc > > # add \echo test > > $ pwd > > /opt/PostgreSQL/8.4/etc/postgresql > > $ ../../bin/psql -U postgres postgres > > --> test > > psql (8.4.2) > > Type "help" for help. > > > > postgres=# > > > > > On a side-note, I observered that timing value in ~/.psqlrc was > > > ignored by psql -c "..." command but not by echo "...."|psqlThought > > > it was strange. > > > > Yeah, that is odd. > > > > -- > > Bruce Momjian <bruce@momjian.us> http://momjian.us > > EnterpriseDB http://enterprisedb.com > > > > + None of us is going to be here forever. + > > _________________________________________________________________ > Hotmail is redefining busy with tools for the New Busy. Get more from your inbox. > http://www.windowslive.com/campaign/thenewbusy?ocid=PID28326::T:WLMTAGL:ON:WL:en-US:WM_HMP:042010_2 -- Bruce Momjian <bruce@momjian.us> http://momjian.us EnterpriseDB http://enterprisedb.com + None of us is going to be here forever. +