Abbrechen von Anweisungen¶
Es wird empfohlen, zum Abbrechen einer Anweisung die Schnittstelle der Anwendung zu verwenden, in der die Abfrage ausgeführt wird (z. B. das Arbeitsblatt der Snowflake-Weboberfläche), oder die vom Snowflake ODBC- oder JDBC-Treiber bereitgestellte Abbruch-API. In einigen Fällen ist es jedoch notwendig, eine Abfrage mit SQL abzubrechen.
Snowflake bietet die folgenden Funktionen, um die Verwendung von SQL zum Abbrechen von laufenden/aktiven Anweisungen zu unterstützen:
Beispiel¶
Im folgenden Java-Beispielcode werden SYSTEM$CANCEL_ALL_QUERIES und andere Snowflake-Funktionen verwendet, um eine in Ausführung befindliche Anweisung der aktuellen Sitzung nach 5 Sekunden abzubrechen:
Der Beispielcode führt zunächst einen SQL-Befehl für CURRENT_SESSION aus, um die Sitzungs-ID zu erhalten.
Dann wird eine Task erstellt, die 5 Sekunden später ausgeführt wird. Diese Task verwendet die Sitzungs-ID als Parameter für SYSTEM$CANCEL_ALL_QUERIES.
Dann wird eine Anweisung mit langer Ausführungszeit ausgeführt, bei der mit der Tabellenfunktion GENERATOR 120 Sekunden lang Zeilen generiert werden.