PG_TERMINATE_BACKEND - Amazon Redshift

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

PG_TERMINATE_BACKEND

終止工作階段。您可以終止使用者所擁有的工作階段。超級使用者可以終止任何工作階段。

語法

pg_terminate_backend( pid )

引數

pid

要終止之工作階段的處理程序 ID。需要 INTEGER 值。

傳回類型

使用須知

如果快要接近並行連線數上限,請使用 PG_TERMINATE_BACKEND 終止閒置工作階段並釋出連線。如需詳細資訊,請參閱 Amazon Redshift 限制

如果有多個工作階段中的查詢在同一資料表上保持鎖定,您可以使用 PG_TERMINATE_BACKEND 來終止其中一個工作階段,這樣可強制終止工作階段中任何目前正在執行的交易,以解除所有鎖定並恢復交易。查詢 PG__LOCKS 目錄資料表以檢視目前持有的鎖定。

如果查詢不在交易區塊中 (BEGIN … END),您可以使用 取消 命令或 PG_CANCEL_BACKEND 函數來取消查詢。

範例

若要查詢 SVV_TRANSACTIONS 資料表來檢視目前交易中生效的所有鎖定,請使用下列範例。

SELECT * FROM svv_transactions; +-----------+--------+-------+------+---------------------+-----------------+----------------------+----------+---------+ | txn_owner | txn_db | xid | pid | txn_start | lock_mode | lockable_object_type | relation | granted | +-----------+--------+-------+------+---------------------+-----------------+----------------------+----------+---------+ | rsuser | dev | 96178 | 8585 | 2017-04-12 20:13:07 | AccessShareLock | relation | 51940 | true | | rsuser | dev | 96178 | 8585 | 2017-04-12 20:13:07 | AccessShareLock | relation | 52000 | true | | rsuser | dev | 96178 | 8585 | 2017-04-12 20:13:07 | AccessShareLock | relation | 108623 | true | | rsuser | dev | 96178 | 8585 | 2017-04-12 20:13:07 | ExclusiveLock | transactionid | | true | +-----------+--------+-------+------+---------------------+-----------------+----------------------+----------+---------+

若要終止保持鎖定的工作階段,請使用下列範例。

SELECT PG_TERMINATE_BACKEND(8585);