SHOW LOCKS

Listet alle laufenden Transaktionen auf, die über Sperren für Ressourcen verfügen. Der Befehl kann verwendet werden, um Sperren für den aktuellen Benutzer in allen Sitzungen des Benutzers oder für alle Benutzer im Konto anzuzeigen.

Informationen zu Transaktionen und zum Sperren von Ressourcen finden Sie unter Transaktionen.

Siehe auch:

SHOW TRANSACTIONS

Syntax

SHOW LOCKS [ IN ACCOUNT ]
Copy

Parameter

IN ACCOUNT

Gibt alle Sperren für alle Benutzer des Kontos zurück. Dieser Parameter gilt nur, wenn er von Benutzern mit der Rolle ACCOUNTADMIN (Kontoadministratoren) ausgeführt wird.

Bei allen anderen Rollen zeigt die Funktion nur Sperren für den aktuellen Benutzer in der aktuellen Sitzung.

Ausgabe

Die Ausgabe des Befehls zeigt Sperrenmetadaten in den folgenden Spalten an:

Spalte

Beschreibung

resource

Ein vollständig qualifizierter Tabellenname oder eine Transaktions-ID.

type

PARTITIONS (für Sperren für Standardtabellen) oder ROW (für Sperren für Hybridtabellen).

transaction

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

transaction_started_on

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

status

Aktueller Status der Transaktion: HOLDING oder WAITING.

acquired_on

Zeitstempel, der angibt, wann die Sperre erworben wurde.

query_id

Interner/vom System generierter Bezeichner für die SQL-Anweisung.

session

Sitzungs-ID (nur sichtbar für Benutzer mit der Rolle ACCOUNTADMIN).

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, für die Ressourcen gesperrt sind. Diese IDs können als Eingabe für SYSTEM$ABORT_TRANSACTION verwendet werden, um eine angegebene Transaktion abzubrechen.

  • Bei Hybridtabellen zeigt dieser Befehl eine Sperre nur an, wenn eine Transaktion blockiert ist oder wenn sie eine andere Transaktion blockiert.

Beispiele

In diesem Beispiel hält eine Transaktion eine Sperre für die angegebene Standardtabelle (die in der Spalte resource genannte Tabelle).

SHOW LOCKS;
Copy
+---------------------------+------------+---------------------+-------------------------------+---------+-------------------------------+--------------------------------------+
| resource                  | type       |         transaction | transaction_started_on        | status  | acquired_on                   | query_id                             |
|---------------------------+------------+---------------------+-------------------------------+---------+-------------------------------+--------------------------------------|
| CALIBAN_DB.PUBLIC.WEATHER | PARTITIONS | 1721330303831000000 | 2024-07-18 12:18:23.831 -0700 | HOLDING | 2024-07-18 12:18:49.832 -0700 | 01b5c1c6-0002-8691-0000-a9950068a0c6 |
+---------------------------+------------+---------------------+-------------------------------+---------+-------------------------------+--------------------------------------+

In diesem Beispiel hält eine Transaktion eine Sperre auf Zeilenebene für eine Hybridtabelle. Eine andere Transaktion wartet auf diese Sperre.

SHOW LOCKS;
Copy
+---------------------+------+---------------------+-------------------------------+---------+-------------+--------------------------------------+
| resource            | type |         transaction | transaction_started_on        | status  | acquired_on | query_id                             |
|---------------------+------+---------------------+-------------------------------+---------+-------------+--------------------------------------|
| 1721165584820000000 | ROW  | 1721165584820000000 | 2024-07-16 14:33:04.820 -0700 | HOLDING | NULL        |                                      |
| 1721165584820000000 | ROW  | 1721165674582000000 | 2024-07-16 14:34:34.582 -0700 | WAITING | NULL        | 01b5b715-0002-852b-0000-a99500665352 |
+---------------------+------+---------------------+-------------------------------+---------+-------------+--------------------------------------+