PG_CANCEL_BACKEND - Amazon Redshift

Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.

PG_CANCEL_BACKEND

Annulla una query. PG_CANCEL_BACKEND è funzionalmente equivalente al comando CANCEL. È possibile annullare solo le query attualmente eseguite dall'utente. Gli utenti con privilegi avanzati possono cancellare qualsiasi query.

Sintassi

pg_cancel_backend( pid )

Argomenti

pid

L'ID del processo (PID) della query da annullare. Non è possibile annullare una query specificando un ID query; è necessario specificare l'ID processo della query. Richiede un valore INTEGER.

Tipo restituito

Nessuno

Note per l'utilizzo

Se le query in più sessioni contengono blocchi sulla stessa tabella, è possibile utilizzare la funzione PG_TERMINATE_BACKEND per terminare una delle sessioni, forzando qualsiasi transazione attualmente in esecuzione nella sessione terminata per rilasciare tutti i blocchi ed eseguire il rollback della transazione. Eseguire una query sulla tabella del catalogo PG__LOCKS per visualizzare i blocchi attuali. Se non è possibile annullare una query perché si trova nel blocco di transazioni (BEGIN ... END), è possibile interrompere la sessione in cui viene eseguita la query utilizzando la funzione PG_TERMINATE_BACKEND.

Esempi

Per annullare una query attualmente in esecuzione, recupera prima l'ID processo della query che vuoi annullare. Per determinare il processo IDs per tutte le query attualmente in esecuzione, esegui il comando seguente.

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 | +-----+------------------------+----------+--------+-----------------------------+

Per annullare la query con l'ID di processo 802, utilizza l'esempio seguente.

SELECT PG_CANCEL_BACKEND(802);