PG_CANCEL_BACKEND - Amazon Redshift

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

PG_CANCEL_BACKEND

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

Syntax (語法)

pg_cancel_backend( pid )

引數

pid

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

傳回類型

None (無)

使用須知

如果有多個工作階段中的查詢在同一資料表上保持鎖定,您可以使用 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

下列陳述式取消處理程序 ID 為 802 的查詢:

select pg_cancel_backend(802);