如何在pg_stat_activity.query字段中检查预准备语句的内容

Nao*_*awa 6 postgresql

目前,我正在检查PostgreSQL中长时间运行的查询.

为了检查这一点,我查询了以下命令:

SELECT pid, waiting, query_start, substr(query, 0, 50)
FROM pg_stat_activity
ORDER BY query_start
LIMIT 30;
Run Code Online (Sandbox Code Playgroud)

我得到:

  pid  | waiting |          query_start          |                              substr
-------+---------+-------------------------------+------------------------------------------------------------------
 26797 | f       | 2015-07-06 12:44:04.418403+00 | SELECT * FROM "projects" WHERE "projects"."id" = $1 LIMIT 1
 ...
Run Code Online (Sandbox Code Playgroud)

要分析这个长时间运行的查询,我想检查$1这个准备好的语句的内容.

有没有办法得到这个?

Bor*_*lev 2

您不会从 pg_stat_activity 获得此信息,但您可以从慢查询日志中获得完整查询。