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

时间:2012-09-28 14:10:38

标签: postgresql postgresql-8.4

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

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

3 个答案:

答案 0 :(得分:8)

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

答案 1 :(得分:7)

根据我使用的@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;

答案 2 :(得分:3)

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

select *
from pg_stat_activity
where datname = 'yourdatabasename'

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