Postgresql 检查查询是否仍然 运行

Postgresql Check if query is still running

在我的工作中,我需要在 postgresql 数据库中构建一个新的连接 table,这涉及对两个现有的 table 进行大量计算。这个过程应该需要很长时间,所以我在周五离开之前的周末将其设置为 运行。现在,我想检查查询是否完成。

如果不在我 运行 打开的计算机旁,如何检查 INSERT 命令是否已完成? (不,我不知道应该添加多少行。)

您可以查看 table pg_stat_activity,其中包含所有数据库连接,包括活动查询、所有者等。

https://gist.github.com/rgreenjr/3637525 有一个可复制的示例,这样的查询看起来像什么。

Select * from pg_stat_activity where state not ilike 'idle%' and query ilike 'insert%'

这将 return 查询以 insert 开头的所有非空闲会话,如果您的查询未显示在此列表中,则它不再是 运行。

pg_stat_activity doc