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 bloquant (par exemple, une table) sur lequel la transaction attend un verrou.

LOCK_TYPE

TEXT

Type de verrou. Les valeurs valides sont PARTITION, STREAM, TABLE, et ROW. ROW est affiché pour les verrous de table hybrides.

OBJECT_NAME

TEXT

Identificateur de l’objet (tel qu’une table) sur lequel la transaction attend un verrou. ROW est affiché pour les verrous de table hybrides.

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. 0 est affiché pour les tables hybrides.

SCHEMA_NAME

TEXT

Identificateur du schéma de l’objet sur lequel la transaction attend un verrou. NULL est montré pour les verrous ROW.

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 de blocage 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, la maintenance automatique des vues matérialisées). .

  • query_id : ID de requête de l’instruction en cours 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 cette transaction 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.