如何在postgresql数据库中获取正在运行的查询的状态

Aru*_*ule 38 postgresql postgresql-8.4

我有一个运行很长的选择查询.我如何获得该查询的状态,例如它将运行多长时间?是否从表中访问数据.

注意:根据pg_stat_activity查询运行为活动状态.不处于等待状态.就像在Oracle中一样,我们可以看到查询的源/目标和访问状态 - 在postgresql中有这样的东西吗?

Mir*_*ici 20

基于@Anshu我正在使用的答案:

SELECT datname, pid, state, query, age(clock_timestamp(), query_start) AS age 
FROM pg_stat_activity
WHERE state <> 'idle' 
    AND query NOT LIKE '% FROM pg_stat_activity %' 
ORDER BY age;
Run Code Online (Sandbox Code Playgroud)


sup*_*pyo 8

这还不能完成,但是在TODO上.


Him*_*rma 7

我们可以在 postgres 中找到关于数据库的查询日志。

select *
from pg_stat_activity
where datname = 'yourdatabasename'
Run Code Online (Sandbox Code Playgroud)

这将提供数据库的活动查询日志。