SHOW TRANSACTIONS

Listen Sie alle laufenden Transaktionen auf. Mit dem Befehl können Sie Transaktionen für den aktuellen Benutzer oder alle Benutzer im Konto anzeigen.

Siehe auch:

SHOW LOCKS

Syntax

SHOW TRANSACTIONS [ IN ACCOUNT ]
Copy

Parameter

IN ACCOUNT

Zeigt alle Transaktionen für alle Benutzer des Kontos an. Er kann nur von Benutzern mit der Rolle ACCOUNTADMIN verwendet werden (d. h. Kontoadministratoren).

Ausgabe

Die Befehlausgabe zeigt die Metadaten der Transaktion in den folgenden Spalten an:

Spalte

Beschreibung

id

Transaktions-ID (eine vorzeichenbehaftete 64-Bit-Ganzzahl).

user

Aktueller Benutzer.

session

Sitzung ID.

name

Benutzerdefinierter Name oder systemgenerierter Name (UUID) für die Transaktion.

started_on

Zeitstempel, der angibt, wann die Ausführung der Transaktion begonnen hat.

state

Transaktionsstatus: running.

scope

ID der Operation, die eine gespeicherte Prozedur in einer bereichsbezogenen Transaktion mit erstellt hat. 0 für nicht-bereichsbezogen Transaktionen.

Nutzungshinweise

  • Spalten, die mit dem Präfix is_ beginnen, geben entweder Y (ja) oder N (nein) zurück.

  • Für die Ausführung des Befehls ist kein aktives Warehouse erforderlich.

  • Der Befehl gibt maximal 10.000 Datensätze für den angegebenen Objekttyp zurück, wie durch die Zugriffsrechte für die Rolle vorgegeben, die zur Ausführung des Befehls verwendet wird. Datensätze, die über dem Limit von 10.000 liegen, werden nicht zurückgegeben, selbst wenn ein Filter angewendet wird.

    Um Ergebnisse anzuzeigen, für die mehr als 10.000 Datensätze existieren, fragen Sie die entsprechende Ansicht (falls vorhanden) in der Datei Snowflake Information Schema ab.

  • Um die Ausgabe dieses Befehls nachzubearbeiten, können Sie die Funktion RESULT_SCAN verwenden, die die Ausgabe wie eine abfragbare Tabelle behandelt.

  • Die Befehlsausgabe enthält die IDs für alle laufenden Transaktionen. Diese IDs können als Eingabe für SYSTEM$ABORT_TRANSACTION verwendet werden, um eine angegebene Transaktion abzubrechen.

  • Eine gespeicherte Prozedur, die eine Transaktion enthält, kann aus einer anderen Transaktion heraus aufgerufen werden. Diese Transaktionen sind voneinander getrennt, aber „bereichsbezogen“. Die Werte in der Spalte scope sind nützlich, um herauszufinden, ob zwei Transaktionen im gleichen Bereich liegen. Weitere Informationen dazu finden Sie unter Bereichsbezogene Transaktionen.

Beispiel

In diesem Beispiel werden zwei Sitzungen von demselben Benutzer durchgeführt, wobei für jede Sitzung eine Transaktion läuft.

SHOW TRANSACTIONS;
Copy
+---------------------+---------+-----------------+--------------------------------------+-------------------------------+---------+-------+
|                  id | user    |         session | name                                 | started_on                    | state   | scope |
|---------------------+---------+-----------------+--------------------------------------+-------------------------------+---------+-------|
| 1721165674582000000 | CALIBAN | 186457423713330 | 551f494d-90ed-438d-b32b-1161396c3a22 | 2024-07-16 14:34:34.582 -0700 | running |     0 |
| 1721165584820000000 | CALIBAN | 186457423749354 | a092aa44-9a0a-4955-9659-123b35c0efeb | 2024-07-16 14:33:04.820 -0700 | running |     0 |
+---------------------+---------+-----------------+--------------------------------------+-------------------------------+---------+-------+