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:
Syntax¶
SHOW TRANSACTIONS [ IN ACCOUNT ]
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 |
---|---|
|
Transaktions-ID (eine vorzeichenbehaftete 64-Bit-Ganzzahl). |
|
Aktueller Benutzer. |
|
Sitzung ID. |
|
Benutzerdefinierter Name oder systemgenerierter Name (UUID) für die Transaktion. |
|
Zeitstempel, der angibt, wann die Ausführung der Transaktion begonnen hat. |
|
Transaktionsstatus: |
|
ID der Operation, die eine gespeicherte Prozedur in einer bereichsbezogenen Transaktion mit erstellt hat. |
Nutzungshinweise¶
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.
Für die Ausführung des Befehls ist kein aktives Warehouse erforderlich.
Der Befehl gibt nur Objekte zurück, für die der aktuellen Rolle des aktuellen Benutzers mindestens ein Zugriffsrecht zugewiesen wurde.
Das Zugriffsrecht MANAGE GRANTS gibt seinem Eigentümer implizit die Möglichkeit, jedes Objekt im Konto anzuzeigen. Standardmäßig haben nur der Kontoadministrator (Benutzer mit der Rolle ACCOUNTADMIN) und der Systemadministrator (Benutzer mit der Rolle SECURITYADMIN) die Berechtigung MANAGE GRANTS.
Zur Weiterverarbeitung der Ausgabe dieses Befehls können Sie die Funktion RESULT_SCAN verwenden, die die Ausgabe wie eine abfragbare Tabelle behandelt. Sie können auch den Pipe-Operator verwenden, um die Ausgabe dieses Befehls abzufragen.
Der Befehl gibt maximal zehntausend Datensätze für den angegebenen Objekttyp zurück, entsprechend den Zugriffsrechten für die zur Ausführung des Befehls verwendete Rolle. Datensätze, die die Grenze von zehntausend Datensätzen überschreiten, werden nicht zurückgegeben, selbst wenn ein Filter angewendet wurde.
Um Ergebnisse anzuzeigen, für die mehr als zehntausend Datensätze existieren, fragen Sie die entsprechende Ansicht (sofern vorhanden) in Snowflake Information Schema ab.
Beispiel¶
In diesem Beispiel werden zwei Sitzungen von demselben Benutzer durchgeführt, wobei für jede Sitzung eine Transaktion läuft.
SHOW TRANSACTIONS;
+---------------------+---------+-----------------+--------------------------------------+-------------------------------+---------+-------+
| 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 |
+---------------------+---------+-----------------+--------------------------------------+-------------------------------+---------+-------+