Die vorliegende Übersetzung wurde maschinell erstellt. Im Falle eines Konflikts oder eines Widerspruchs zwischen dieser übersetzten Fassung und der englischen Fassung (einschließlich infolge von Verzögerungen bei der Übersetzung) ist die englische Fassung maßgeblich.
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. Führen Sie den folgenden Befehl aus, um den Prozess IDs für alle aktuell ausgeführten Abfragen zu ermitteln.
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);