本文由簡體中文內容自動轉碼而成。阿里雲不保證此自動轉碼的準確性、完整性及時效性。本文内容請以簡體中文版本為準。

如何終止異常SQL執行?

更新時間:2024-02-05 10:32

若需要終止特定的SQL或會話來恢複系統狀態,先通過pg_stat_activity系統檢視表查詢當前的查詢:

select current_query,procpid from pg_stat_activity ;

                    current_query                    | procpid
-----------------------------------------------------+---------
 select current_query,procpid from pg_stat_activity; |   32584
 SELECT xxx                                          |   32238
說明
current_query為當前進行中的查詢,procpid為後台進程的PID。

終止非當前串連的SELECT:

SELECT pg_cancel_backend(pg_stat_activity.procpid)
FROM pg_stat_activity
WHERE procpid <> pg_backend_pid() and current_query like 'SELECT%';--注意SELECT的大小寫

 pg_cancel_backend
-------------------
 t
(1 rows)

SELECT pg_terminate_backend(pg_stat_activity.procpid)
FROM pg_stat_activity
WHERE procpid <> pg_backend_pid() and current_query like 'SELECT%'; --注意SELECT的大小寫

 pg_terminate_backend
-------------------
 t
(1 rows)
說明
cancelterminate僅適用於目前使用者的查詢或許可權小於等於目前使用者的查詢。若提示"ERROR: must be superuser or rds_superuser to signal other server processes",則說明後台有其他使用者的串連,但不影響cancelterminate的執行。
    文檔反饋
    phone 聯絡我們

    立即和Alibaba Cloud在線服務人員進行交談,獲取您想了解的產品信息以及最新折扣。

    alicare alicarealicarealicare