PG_CANCEL_BACKEND - Amazon Redshift

本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。

PG_CANCEL_BACKEND

取消查詢。PG_CANCEL_BACKEND 的功能相當於 取消 命令。您可以取消使用者目前正在執行的查詢。超級使用者可以取消任何查詢。

語法

pg_cancel_backend( pid )

引數

pid

要取消之查詢的處理程序 ID (PID)。您無法藉由指定查詢 ID 來取消查詢;您必須指定查詢的處理程序 ID。需要 INTEGER 值。

傳回類型

使用須知

如果有多個工作階段中的查詢在同一資料表上保持鎖定,您可以使用 PG_TERMINATE_BACKEND 函數來終止其中一個工作階段,這樣可強制終止工作階段中任何目前正在執行的交易,以解除所有鎖定並恢復交易。查詢 PG__LOCKS 目錄資料表以檢視目前持有的鎖定。如果因為查詢在交易區塊中 (BEGIN … END) 而無法取消查詢,您可以使用 PG_TERMINATE_BACKEND 函數,以終止查詢執行所在的工作階段。

範例

若要取消目前執行中的查詢,請先擷取您要取消之查詢的處理程序 ID。若要判斷所有目前執行中查詢的處理程序 ID,請執行下列命令。

SELECT pid, TRIM(starttime) AS start, duration, TRIM(user_name) AS user, SUBSTRING(query,1,40) AS querytxt FROM stv_recents WHERE status = 'Running'; +-----+------------------------+----------+--------+-----------------------------+ | pid | starttime | duration | user | querytxt | +-----+------------------------+----------+--------+-----------------------------+ | 802 | 2013-10-14 09:19:03.55 | 132 | dwuser | select venuename from venue | | 834 | 2013-10-14 08:33:49.47 | 1250414 | dwuser | select * from listing; | | 964 | 2013-10-14 08:30:43.29 | 326179 | dwuser | select sellerid from sales | +-----+------------------------+----------+--------+-----------------------------+

若要取消處理程序識別碼為 802 的查詢,請使用下列範例。

SELECT PG_CANCEL_BACKEND(802);