Schéma :

ACCOUNT_USAGE

Vue LOCK_WAIT_HISTORY

Cette vue Account Usage comprend l’historique des transactions qui attendent des verrous. Pour plus de détails, voir Analyse des transactions bloquées avec la vue LOCK_WAIT_HISTORY.

Colonnes

Nom de la colonne

Type de données

Description

OBJECT_ID

NUMBER

Identificateur interne/généré par le système pour l’objet (par exemple, une table) sur lequel la transaction attend un verrou.

LOCK_TYPE

TEXT

Type de verrou. Les valeurs valides sont PARTITION, STREAM, et TABLE.

OBJECT_NAME

TEXT

Identificateur de l’objet (par exemple, une table) sur lequel la transaction attend un verrou.

SCHEMA_ID

NUMBER

Identificateur interne/généré par le système pour le schéma de l’objet sur lequel la transaction attend un verrou.

SCHEMA_NAME

TEXT

Identificateur du schéma de l’objet sur lequel la transaction attend un verrou.

DATABASE_ID

NUMBER

Identificateur interne/système généré pour la base de données de l’objet sur lequel la transaction attend un verrou.

DATABASE_NAME

TEXT

Identificateur de la base de données de l’objet sur lequel la transaction attend un verrou.

QUERY_ID

TEXT

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

TRANSACTION_ID

NUMBER

Identificateur interne/système pour la transaction avec l’instruction qui attend le verrou. Peut être associé à Vue QUERY_HISTORY pour obtenir des détails supplémentaires sur les instructions de la transaction.

REQUESTED_AT

TIMESTAMP_LTZ

Horodatage lorsque le verrou a été demandé par la transaction qui attend le verrou.

ACQUIRED_AT

TIMESTAMP_LTZ

Horodatage lorsque le verrou a été acquis par la transaction qui le détient.

BLOCKER_QUERIES

VARIANT

Tableau JSON d’objets. Chaque objet est une requête bloquante avec les propriétés suivantes : . - is_snowflake : TRUE si la requête est un processus d’arrière-plan exécuté par Snowflake (par exemple, maintenance automatique des vues matérialisées). . - query_id : ID de requête de l’instruction actuelle dans la transaction de blocage qui a bloqué l’instruction. Vide si is_snowflake est vrai. . - transaction_id : ID de la transaction de blocage. Vide si is_snowflake est vrai. . . Il peut y avoir jusqu’à 20 objets dans ce tableau.

Notes sur l’utilisation

  • L’ID de la première requête de blocage qui est renvoyé dans le tableau blocker_queries est l’ID de la requête qui était en cours d’exécution dans la transaction qui détient le verrou lorsque la transaction en attente du verrou a commencé à attendre. Notez qu’il est possible que des requêtes antérieures à cette requête dans la transaction de blocage aient également acquis le verrou et qu’elles doivent être examinées.

  • Chaque ligne de la sortie représente une transaction en attente d’un verrou. Notez qu’il peut y avoir d’autres transactions avant elle qui attendent le même verrou.

Exemples

Trouvez toutes les transactions bloquées qui ont demandé des verrous au cours des 24 dernières heures :

SELECT query_id, object_name, transaction_id, blocker_queries
  FROM snowflake.account_usage.lock_wait_history
  WHERE requested_at >= dateadd('hours', -24, current_timestamp());
Copy

Pour d’autres exemples, voir Analyse des transactions bloquées avec la vue LOCK_WAIT_HISTORY.