PG_CANCEL_BACKEND - Amazon Redshift

PG_CANCEL_BACKEND

Cancela una consulta. PG_CANCEL_BACKEND es funcionalmente equivalente al comando CANCEL. Puede cancelar consultas que su usuario esté ejecutando actualmente. Los superusuarios pueden cancelar cualquier consulta.

Sintaxis

pg_cancel_backend( pid )

Argumentos

pid

El ID de proceso (PID) de la consulta que se cancelará. No puede cancelar una consulta al especificar un ID de consulta; debe especificar el ID de proceso de la consulta. Requiere un valor INTEGER.

Tipo de retorno

Ninguna

Notas de uso

Si las consultas de varias sesiones contienen bloqueos en la misma tabla, puede usar la función PG_TERMINATE_BACKEND para terminar una de las sesiones, lo que exige que las transacciones en ejecución de la sesión terminada liberen todos los bloqueos y reviertan la transacción. Consulte la tabla de catálogo PG_LOCKS para ver los bloqueos actuales. Si no puede cancelar una consulta porque está en un bloque de transacción (BEGIN ... END), puede terminar la sesión en la que se ejecuta la consulta al usar la función PG_TERMINATE_BACKEND.

Ejemplos

Para cancelar una consulta que se está ejecutando actualmente, primero recupere el ID de proceso para la consulta que desea cancelar. Para determinar los ID de proceso para todas las consultas en ejecución actualmente, ejecute el siguiente comando.

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

Para cancelar la consulta con el ID de proceso 802, utilice el siguiente ejemplo.

SELECT PG_CANCEL_BACKEND(802);