在 PostgreSQL 中殺死一個程序 ID

Bilal Shahid 2022年5月14日
在 PostgreSQL 中殺死一個程序 ID

今天,我們將學習如何在使用 PostgreSQL 資料庫時在後臺終止或停止正在執行的查詢。

如果前端停止工作而後臺程序仍在執行,則可能會發生這種情況。在這種情況下,你可能想要終止該程序。

使用 pg_cancel_backend 殺死 PostgreSQL 中的程序 ID

首先,使用這個命令檢視所有正在執行的任務:

select * from pg_stat_activity;

現在,如果你想從此處刪除任務,請使用以下查詢:

SELECT pg_cancel_backend(11080), pg_terminate_backend(11080) FROM pg_stat_activity WHERE state = 'active';

我們將 11080 用於 active 程序並使用此語句終止它。稍後它將返回到 idle

因此,pg_cancel_backend 在終止程序時往往有點寬鬆,因為它需要一些時間。但在許多情況下,它可能會重新執行;因此我們使用 pg_terminate_backend 硬殺程序。

不要將此稱為系統中唯一的活動程序,因為這可能會關閉你當前的查詢。因此,僅在需要時才明智地使用這些功能。

你始終可以選擇終止當前 PostgreSQL 會話並重新啟動它,而不是終止程序。

Author: Bilal Shahid
Bilal Shahid avatar Bilal Shahid avatar

Hello, I am Bilal, a research enthusiast who tends to break and make code from scratch. I dwell deep into the latest issues faced by the developer community and provide answers and different solutions. Apart from that, I am just another normal developer with a laptop, a mug of coffee, some biscuits and a thick spectacle!

GitHub