【Gp】PostgreSql中如何kill掉正在執行的sql語句

小亮520cl發表於2017-07-10

雖然可以使用 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)操作

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/29096438/viewspace-2141808/,如需轉載,請註明出處,否則將追究法律責任。

相關文章