50

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

注意:根据pg_stat_activity查询状态显示为活动而不是等待状态。就像在 Oracle 中一样,我们可以看到查询的源/目标和处理状态 - 在 postgresql 中是否有类似的东西?

4

3 回答 3

34

基于@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;
于 2017-05-27T00:34:08.923 回答
8

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

于 2013-09-19T20:25:38.597 回答
7

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

select *
from pg_stat_activity
where datname = 'yourdatabasename'

这将给出数据库的活动查询日志。

于 2017-09-05T13:54:22.707 回答