postgreSQL 終止正在執行的SQL

2021-06-29 03:37:39 字數 552 閱讀 5556

雖然可以使用 kill -9 來強制刪除使用者程序,但是不建議這麼去做。

因為:對於執行update的語句來說,kill掉程序,可能會導致postgres進入到recovery mode

而在recovery mode下,會鎖表,不允許鏈結資料庫。

通常情況下:使用如下語句

=# select datname,procpid,query_start,current_query,waiting,client_addr from pg_stat_activity where waiting='t';

來檢視有哪些sql正在執行。

通過命令:

=# select pg_cancel_backend(執行緒id);

來kill掉指定的sql語句。

(這個函式只能 kill  select 

查詢,而updae,delete dml不生效)

使用 =# select  pg_terminate_backend(pid int)

可以kill 各種dml(select,update,delete,drop)操作

終止正在執行的執行緒

很多人都說使用abort方法來終止執行緒,其實這種做法並不可取!如果你的執行緒正在操作臨界資源,很有可能會造成資源沒有正確釋放而出現死鎖問題。正確的做法應該是使用標記來終止執行緒的執行。下面我們來看具體的操作步驟。首先定義乙個 停止 訊號變數 view plaincopy to clipboardp...

Matlab 終止正在執行的程式

終止matlab正在執行的程式,一般有三種方法。ctrl c ctrl break ctrl alt break 如果是在服務bai器上跑的 的話,按完快捷鍵之後有時候需要等一小會,程式才會停。有時候跑matlab記憶體占用過高,會有宕機的情況,這時候可以關閉matlab優化程式。關閉matlab可...

C 實現終止正在執行的執行緒

一般來說,很多人都會使用abort方法來終止執行緒,其實這種做法並不可取!如果你的執行緒正在操作臨界資源,很有可能會造成資源沒有正確釋放而出現死鎖問題。正確的做法應該是使用標記來終止執行緒的執行。基本思路是 定義乙個用於描述 停止 訊號的變數,在整個程式啟動前,設定該變數為false。程中,迴圈判斷...