本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
PG_TERMINATE_BACKEND
終止工作階段。您可以終止使用者所擁有的工作階段。超級使用者可以終止任何工作階段。
語法
pg_terminate_backend( pid )
引數
- pid
-
要終止之工作階段的處理程序 ID。需要
INTEGER
值。
傳回類型
無
使用須知
如果您即將達到並行連線的限制,請使用 PG_TERMINATE_BACKEND 終止閒置工作階段並釋放連線。如需詳細資訊,請參閱 Amazon Redshift 限制。
如果多個工作階段中的查詢在相同資料表上保留鎖定,您可以使用 PG_TERMINATE_BACKEND 來終止其中一個工作階段,這會強制終止工作階段中任何目前執行的交易釋放所有鎖定並復原交易。查詢 PG_LOCKS 目錄資料表以檢視目前保留的鎖定。
如果查詢不在交易區塊中 (BEGIN ... END),您可以使用 CANCEL命令或 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);