PG_CANCEL_BACKEND - Amazon Redshift

Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.

PG_CANCEL_BACKEND

Annule une requête. PG_CANCEL_BACKEND équivaut à la commande ANNULER. Vous pouvez annuler les requêtes exécutées simultanément par votre utilisateur. Les super-utilisateurs peuvent annuler n’importe quelle requête.

Syntaxe

pg_cancel_backend( pid )

Arguments

pid

ID de processus (PID) de la requête à annuler. Vous ne pouvez pas annuler une requête en spécifiant un ID de requête ; vous devez spécifier l’ID de processus de la requête. Nécessite une valeur INTEGER.

Type de retour

Aucun

Notes d’utilisation

Si les requêtes de plusieurs séances détiennent des verrous sur la même table, vous pouvez utiliser la fonction PG_TERMINATE_BACKEND pour mettre fin à l’une des séances, ce qui oblige toutes les transactions en cours d’exécution dans la séance terminée à libérer tous les verrous et à annuler la transaction. Interrogez la table de catalogue PG__LOCKS afin d’afficher les verrous actuellement détenus. Si vous ne pouvez pas annuler une requête, car elle se trouve dans un bloc de transaction (BEGIN ... END), vous pouvez mettre fin à la séance dans laquelle s’exécute la requête à l’aide de la fonction PG_TERMINATE_BACKEND.

Exemples

Pour annuler une requête en cours d’exécution, récupérez d’abord l’ID de processus de la requête que vous voulez annuler. Pour déterminer le processus IDs de toutes les requêtes en cours d'exécution, exécutez la commande suivante.

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

Pour annuler la requête dotée de l’ID de processus 802, utilisez l’exemple suivant.

SELECT PG_CANCEL_BACKEND(802);