SHOW LOCKS

Liste toutes les transactions en cours d’exécution dont les ressources sont bloquées. La commande peut être utilisée pour afficher les verrouillages de l’utilisateur actuel dans toutes les sessions de l’utilisateur ou tous les utilisateurs du compte.

Pour plus d’informations sur les transactions et le verrouillage des ressources, voir Transactions.

Voir aussi :

SHOW TRANSACTIONS

Syntaxe

SHOW LOCKS [ IN ACCOUNT ]
Copy

Paramètres

IN ACCOUNT

Renvoie tous les verrouillages de tous les utilisateurs du compte. Ce paramètre ne s’applique que lorsqu’il est exécuté par les utilisateurs avec le rôle ACCOUNTADMIN (administrateurs de compte).

Pour tous les autres rôles, la fonction affiche uniquement les verrouillages pour l’utilisateur actuel dans toutes les sessions.

Sortie

La sortie de la commande affiche les métadonnées de verrouillage dans les colonnes suivantes :

Colonne

Description

resource

Un nom de table complet ou un ID de transaction.

type

PARTITIONS (pour les verrous de table standard) ou ROW (pour les verrous de table hybrides).

transaction

ID de transaction (un entier signé 64 bits).

transaction_started_on

Horodatage spécifiant quand la transaction a commencé à s’exécuter.

status

Statut actuel de la transaction : HOLDING ou WAITING.

acquired_on

Horodatage spécifiant quand le verrou a été acquis.

query_id

Identificateur interne / généré par le système pour l’instruction SQL.

session

ID de session (visible pour les utilisateurs disposant du rôle ACCOUNTADMIN uniquement).

Notes sur l’utilisation

  • Les colonnes qui commencent par le préfixe is_ renvoient soit Y (oui), soit N (non).

  • L’exécution de la commande ne nécessite pas un entrepôt virtuel en cours d’exécution.

  • La commande retourne un maximum de 10 000 enregistrements pour le type d’objet spécifié, comme dicté par les privilèges d’accès pour le rôle utilisé pour exécuter la commande ; tous les enregistrements au-dessus de la limite de 10 000 enregistrements ne sont pas retournés, même avec un filtre appliqué.

    Pour afficher les résultats pour lesquels il existe plus de 10 000 enregistrements, interrogez la vue correspondante (s’il en existe une) dans Schéma d’information de Snowflake.

  • Pour post-traiter la sortie de cette commande, vous pouvez utiliser la fonction RESULT_SCAN, qui traite la sortie comme une table qui peut être interrogée.

  • La sortie de commande inclut les IDs de toutes les transactions en cours d’exécution dont les ressources sont bloquées. Ces IDs peuvent être utilisés comme entrée pour SYSTEM$ABORT_TRANSACTION afin d’annuler une transaction spécifiée.

  • Pour les tables hybrides, cette commande n’affiche un verrou que si une transaction est bloquée ou si elle bloque une autre transaction.

Exemples

Dans cet exemple, une transaction verrouille la table standard spécifiée (la table nommée dans la colonne resource).

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 |
+---------------------------+------------+---------------------+-------------------------------+---------+-------------------------------+--------------------------------------+

Dans cet exemple, une transaction applique un verrou au niveau de la ligne sur une table hybride. Une autre transaction est en attente sur ce verrou.

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 |
+---------------------+------+---------------------+-------------------------------+---------+-------------+--------------------------------------+