Thread: Current query of the PL/pgsql procedure.
Dear ALL,
I am running PL/pgsql procedure with sql statements that taking a long time. I able to see them in the log just after their completion. How can I see currently running SQL statement? I am able to see in pg_stat_activity only my call to function. Many thanks in advance.
Sincerely yours,
Yuri Levinsky, DBA
Celltick Technologies Ltd., 32 Maskit St., Herzliya 46733, Israel
Mobile: +972 54 6107703, Office: +972 9 9710239; Fax: +972 9 9710222
Attachment
Dear ALL,
I am running PL/pgsql procedure with sql statements that taking a long time. I able to see them in the log just after their completion. How can I see currently running SQL statement? I am able to see in pg_stat_activity only my call to function. Many thanks in advance.
pg_stat_activity is the right table, but you have to be the super-user to see queries by others. Here's what I use:
Sincerely yours,
Yuri Levinsky, DBA
Celltick Technologies Ltd., 32 Maskit St., Herzliya 46733, Israel
Mobile: +972 54 6107703, Office: +972 9 9710239; Fax: +972 9 9710222
Attachment
On Sun, Dec 15, 2013 at 04:18:18PM +0000, Yuri Levinsky wrote: > Dear ALL, > I am running PL/pgsql procedure with sql statements that taking a long > time. I able to see them in the log just after their completion. How > can I see currently running SQL statement? I am able to see in > pg_stat_activity only my call to function. Many thanks in advance. pg_stat_activity and pg logs, can't see what your function does internally. What you can do, though, is to add some "RAISE LOG" to the function, so that it will log its progress. Check this for example: http://www.depesz.com/2010/03/18/profiling-stored-proceduresfunctions/ Best regards, depesz
Attachment
Dear Depesz, This is very problematic solution: I have to change whole!!! my code to put appropriate comment with query text before anyquery execution. In addition I would like to know current execution plan, that seems to be impossible. This is very hardlimitation let's say. In case of production issue I'll just unable to do it: the issue already happening, I can't stopprocedure and start code change. James, I saw your reply: I see the function is running, it's just not clear that exactly and how this function doing. Sincerely yours, Yuri Levinsky, DBA Celltick Technologies Ltd., 32 Maskit St., Herzliya 46733, Israel Mobile: +972 54 6107703, Office: +972 9 9710239; Fax: +972 9 9710222 -----Original Message----- From: depesz@depesz.com [mailto:depesz@depesz.com] Sent: Monday, December 16, 2013 12:26 PM To: Yuri Levinsky Cc: pgsql-performance@postgresql.org Subject: Re: [PERFORM] Current query of the PL/pgsql procedure. On Sun, Dec 15, 2013 at 04:18:18PM +0000, Yuri Levinsky wrote: > Dear ALL, > I am running PL/pgsql procedure with sql statements that taking a long > time. I able to see them in the log just after their completion. How > can I see currently running SQL statement? I am able to see in > pg_stat_activity only my call to function. Many thanks in advance. pg_stat_activity and pg logs, can't see what your function does internally. What you can do, though, is to add some "RAISE LOG" to the function, so that it will log its progress. Check this for example: http://www.depesz.com/2010/03/18/profiling-stored-proceduresfunctions/ Best regards, depesz
Dear ALL,
I am running PL/pgsql procedure with sql statements that taking a long time. I able to see them in the log just after their completion. How can I see currently running SQL statement? I am able to see in pg_stat_activity only my call to function. Many thanks in advance.
[1] http://www.postgresql.org/docs/current/static/auto-explain.html
[2] http://www.postgresql.org/docs/current/static/pgstatstatements.html
Matheus de Oliveira
Analista de Banco de Dados
Dextra Sistemas - MPS.Br nível F!
www.dextra.com.br/postgres
On 12/16/2013 05:26 AM, hubert depesz lubaczewski wrote: > On Sun, Dec 15, 2013 at 04:18:18PM +0000, Yuri Levinsky wrote: >> Dear ALL, >> I am running PL/pgsql procedure with sql statements that taking a long >> time. I able to see them in the log just after their completion. How >> can I see currently running SQL statement? I am able to see in >> pg_stat_activity only my call to function. Many thanks in advance. > pg_stat_activity and pg logs, can't see what your function does > internally. > > What you can do, though, is to add some "RAISE LOG" to the function, so > that it will log its progress. > > Check this for example: > http://www.depesz.com/2010/03/18/profiling-stored-proceduresfunctions/ > Also, the auto-explain module can peer inside functions. See <http://www.postgresql.org/docs/current/static/auto-explain.html> cheers andrew
On Mon, 2013-12-16 at 11:42 +0000, Yuri Levinsky wrote: > Dear Depesz, > This is very problematic solution: I have to change whole!!! my code to put appropriate comment with query text beforeany query execution. In addition I would like to know current execution plan, that seems to be impossible. This isvery hard limitation let's say. In case of production issue I'll just unable to do it: the issue already happening, I can'tstop procedure and start code change. > James, > I saw your reply: I see the function is running, it's just not clear that exactly and how this function doing. > This blog post (http://blog.guillaume.lelarge.info/index.php/post/2012/03/31/Profiling-PL/pgsql-functions) can probably help you profilingyour PL/pgsql functions without modifying them. I'm interested in any comments you can have on the log_functions hook function. Regards. -- Guillaume http://blog.guillaume.lelarge.info http://www.dalibo.com