Amazon Redshift unterstützt ab dem 1. November 2025 nicht mehr die Erstellung neuer Python-UDFs. Wenn Sie Python-UDFs verwenden möchten, erstellen Sie die UDFs vor diesem Datum. Bestehende Python-UDFs funktionieren weiterhin wie gewohnt. Weitere Informationen finden Sie im Blog-Posting
PG_CANCEL_BACKEND
Bricht eine Abfrage ab. PG_CANCEL_BACKEND entspricht funktionell dem Befehl CANCEL. Sie können Aufträge abbrechen, die zurzeit von Ihrem Benutzer ausgeführt werden. Superuser können alle Abfragen abbrechen.
Syntax
pg_cancel_backend( pid )
Argumente
- pid
-
Die Prozess-ID (PID) der Abfrage, die abgebrochen werden soll. Sie können eine Abfrage nicht durch Angabe einer Abfrage-ID abbrechen. Sie müssen die Prozess-ID der Abfrage angeben. Benötigt einen
INTEGER-Wert.
Rückgabetyp
Keine
Nutzungshinweise
Wenn Abfragen in mehreren Sitzungen Sperren für die gleiche Tabelle bewirken, können Sie die Funktion PG_TERMINATE_BACKEND verwenden, um eine der Sitzungen zu beenden. Dadurch werden alle Transaktionen, die zurzeit in der beendeten Sitzung ausgeführt werden, gezwungen, alle Sperren aufzuheben und ein Rollback für die Transaktion auszuführen. Führen Sie eine Abfrage für die Systemtabelle PG__LOCKS aus, um die zurzeit vorhandenen Sperren anzuzeigen. Wenn Sie eine Abfrage nicht abbrechen können, weil sie sich in einem Transaktionsblock befindet (BEGIN … END), können Sie mithilfe der Funktion PG_TERMINATE_BACKEND die Sitzung beenden, in der die Abfrage ausgeführt wird.
Beispiele
Um eine Abfrage abzubrechen, die aktuell ausgeführt wird, rufen Sie zuerst die Prozess-ID für die Abfrage ab, die Sie abbrechen möchten. Um die Prozess-IDs für alle zurzeit ausgeführten Abfragen zu ermitteln, führen Sie den folgenden Befehl aus.
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 | +-----+------------------------+----------+--------+-----------------------------+
Verwenden Sie das folgende Beispiel, um die Abfrage mit der Prozess-ID 802 abzubrechen.
SELECT PG_CANCEL_BACKEND(802);