Thread: Long running transaction in pg_activity_log
I see some long running transaction in my pg_activity_log table. My app becomes almost unusable. My question is
How can I query the database to see what sql these transactions are running.
16385;"em_db";20893;16386;"em_user";"<IDLE> in transaction";f;"2007-08-22 20:38:06.527792+00";"2007-08-22 20:37:33.937193+00";"127.0.0.1";52466
16385;"em_db";15110;16386;"em_user";"<IDLE> in transaction";f;"2007-08-22 20:05:08.580643+00";"2007-08-22 19:39:11.670572+00";"127.0.0.1";50961
16385;"em_db";15113;16386;"em_user";"<IDLE> in transaction";f;"2007-08-22 20:06:01.53394+00";"2007-08-22 19:39:11.704564+00";"127.0.0.1";50964
Thanks
Regards
Sachi
Regards
Sachchida
From: pgsql-performance-owner@postgresql.org [mailto:pgsql-performance-owner@postgresql.org] On Behalf Of Sachchida Ojha
Sent: Wednesday, August 22, 2007 4:40 PM
To: pgsql-performance@postgresql.org
Subject: [PERFORM] Long running transaction in pg_activity_log
I see some long running transaction in my pg_activity_log table. My app becomes almost unusable. My question is
How can I query the database to see what sql these transactions are running.
16385;"em_db";20893;16386;"em_user";"<IDLE> in transaction";f;"2007-08-22 20:38:06.527792+00";"2007-08-22 20:37:33.937193+00";"127.0.0.1";52466
16385;"em_db";15110;16386;"em_user";"<IDLE> in transaction";f;"2007-08-22 20:05:08.580643+00";"2007-08-22 19:39:11.670572+00";"127.0.0.1";50961
16385;"em_db";15113;16386;"em_user";"<IDLE> in transaction";f;"2007-08-22 20:06:01.53394+00";"2007-08-22 19:39:11.704564+00";"127.0.0.1";50964
Thanks
Regards
Sachi
[Sachchida Ojha - Wed at 04:40:09PM -0400] > I see some long running transaction in my pg_activity_log table. My app > becomes almost unusable. My question is > How can I query the database to see what sql these transactions are > running. "<IDLE> in transaction" means that no sql query is running at the moment. Most probably it's a problem with the application, it starts a transaction, but does not close it (through a commit or rollback). This is very harmful for the performance, as the hours, days and weeks pass by any database supporting transactions will get problems. Restarting the application and vacuuming is a one-time-shot which should solve the problem for a short while. For a permanent fix, the application needs to be fixed, or you'll have to ensure that the autocommit feature is used.
If I am not wrong, you must be asking about this:
select * from pg_stat_activity;
If you see <command string not enabled> in the query column.
Turn on the stats_command_string option in postgresql.conf.
Regards,
Farhan
From: Sachchida Ojha <sojha@secure-elements.com>
To: pgsql-performance@postgresql.org
Sent: Thursday, 23 August, 2007 1:40:09 AM
Subject: [PERFORM] Long running transaction in pg_activity_log
I see some long running transaction in my pg_activity_log table. My app becomes almost unusable. My question is
How can I query the database to see what sql these transactions are running.
16385;"em_db";20893;16386;"em_user";"<IDLE> in transaction";f;"2007-08-22 20:38:06.527792+00";"2007-08-22 20:37:33.937193+00";"127.0.0.1";52466
16385;"em_db";15110;16386;"em_user";"<IDLE> in transaction";f;"2007-08-22 20:05:08.580643+00";"2007-08-22 19:39:11.670572+00";"127.0.0.1";50961
16385;"em_db";15113;16386;"em_user";"<IDLE> in transaction";f;"2007-08-22 20:06:01.53394+00";"2007-08-22 19:39:11.704564+00";"127.0.0.1";50964
Thanks
Regards
Sachi
Yahoo! Answers - Get better answers from someone who knows. Try it now.