在我的工作中,我需要在postgresql数据库中构建一个新的连接表,该连接表涉及在两个现有表上执行大量计算。这个过程应该需要很长时间,所以我在周五离开之前将它设置为在周末运行。现在,我想检查查询是否完成。Postgresql检查查询是否仍在运行
如何检查INSERT命令是否已完成,而不是在我运行它的计算机上? (不,我不知道它是多少行假设的补充。)
在我的工作中,我需要在postgresql数据库中构建一个新的连接表,该连接表涉及在两个现有表上执行大量计算。这个过程应该需要很长时间,所以我在周五离开之前将它设置为在周末运行。现在,我想检查查询是否完成。Postgresql检查查询是否仍在运行
如何检查INSERT命令是否已完成,而不是在我运行它的计算机上? (不,我不知道它是多少行假设的补充。)
Select * from pg_stat_activity where state not ilike 'idle%' and query ilike 'insert%'
这将返回该查询开始insert
,如果您的查询没有显示在此列表则不再运行所有非空闲会话。
你可以看看它包含了所有的数据库连接,包括主动询问,老板等
在https://gist.github.com/rgreenjr/3637525有表pg_stat_activity
是一个可复制的例子,这样的查询可能是这样的。
:根据您的[隔离级别](http://www.postgresql.org/docs/current/static/transaction-iso.html),您可能甚至无法在将数据提交到数据库之前查看插入的数据。 –
在提交之前,它将永远不可能看到插入的数据(来自不同的事务)。 Postgres不允许脏读。 –
检查和pg_stat_activity – Dave
这是关于你的计数来跟踪当前状态的想法一个例子http://www.postgresql.org/message-id/[email protected] – quasoft