在我的工作中,我需要在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