如何获取postgresql数据库中正在运行的查询的状态
我有一个select查询运行了很长时间。我将如何获得该查询的状态,例如它将运行多长时间?它是否正在从表中访问数据 注意:根据如何获取postgresql数据库中正在运行的查询的状态,postgresql,postgresql-8.4,Postgresql,Postgresql 8.4,我有一个select查询运行了很长时间。我将如何获得该查询的状态,例如它将运行多长时间?它是否正在从表中访问数据 注意:根据pg_stat_activity查询状态显示为活动状态,而不是等待状态。 就像在Oracle中一样,我们可以看到查询的源/目标和处理状态-postgresql中是否有类似的内容?这还不能完成,但已打开。基于我使用的@Anshu答案: SELECT datname, pid, state, query, age(clock_timestamp(), query_start)
pg_stat_activity
查询状态显示为活动状态,而不是等待状态。
就像在Oracle中一样,我们可以看到查询的源/目标和处理状态-postgresql中是否有类似的内容?这还不能完成,但已打开。基于我使用的@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;
选择datname、pid、state、query、age(clock\u timestamp()、query\u start)作为age
来自pg_统计_活动
何处状态为“空闲”
和查询不类似“%FROM pg_stat_activity%”
按年龄排序;
我们可以在postgres中找到关于数据库的查询日志
select *
from pg_stat_activity
where datname = 'yourdatabasename'
这将提供数据库的活动查询日志。我需要上述问题中查询的完成时间。pg_stat_activity视图仅提供活动查询、数据库和用户详细信息。pg_stat_活动不包含正在运行的查询的完成时间。