您好,登錄后才能下訂單哦!
這篇文章主要介紹“PostgreSql中怎么kill掉正在執行的sql語句”,在日常操作中,相信很多人在PostgreSql中怎么kill掉正在執行的sql語句問題上存在疑惑,小編查閱了各式資料,整理出簡單好用的操作方法,希望對大家解答”PostgreSql中怎么kill掉正在執行的sql語句”的疑惑有所幫助!接下來,請跟著小編一起來學習吧!
雖然可以使用 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)操作
到此,關于“PostgreSql中怎么kill掉正在執行的sql語句”的學習就結束了,希望能夠解決大家的疑惑。理論與實踐的搭配能更好的幫助大家學習,快去試試吧!若想繼續學習更多相關知識,請繼續關注億速云網站,小編會繼續努力為大家帶來更多實用的文章!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。