Solution du problème
Comment est-ce possible?
SQL Server utilise principalement le verrouillage au niveau des lignes, et donc les deux requêtes commencent à s'exécuter et prennent des verrous U sur les clés qu'elles lisent (l'une parce qu'il s'agit d'une instruction UPDATE et l'autre parce qu'il s'agit d'un SELECT avec l'indicateur UPDLOCK).
Bientôt, chaque processus possède des verrous U sur de nombreuses clés différentes. Ensuite, une session a besoin d'un verrou en U sur une clé verrouillée par l'autre et se bloque. Ensuite, la session non bloquée a besoin d'un verrou U sur une clé appartenant à la session bloquée, ce qui est un blocage.
Aucun commentaire:
Enregistrer un commentaire