Compatibilité de verrouillage (moteur de base de données)
La compatibilité de verrouillage détermine si plusieurs transactions peuvent simultanément acquérir des verrous sur la même ressource. Si une ressource est déjà verrouillée par une autre transaction, une demande de nouveau verrou ne peut être accordée que si le mode du verrou demandé est compatible avec celui du verrou existant. Si le mode du verrou demandé n'est pas compatible avec le verrou existant, la transaction qui demande le nouveau verrou attend que le verrou existant soit libéré ou que l'intervalle de délai de verrouillage ait expiré. Par exemple, aucun mode de verrou n'est compatible avec les verrous exclusifs. Lorsqu'un verrou exclusif (X) est posé, aucune autre transaction ne peut acquérir un verrou de quelque sorte que ce soit (partagé, mise à jour, exclusif) sur cette ressource tant que le verrou exclusif (X) n'a pas été libéré. Inversement, si un verrou partagé (S) a été appliqué à une ressource, les autres transactions peuvent aussi acquérir un verrou partagé ou de mise à jour (U) sur cet élément, même si la première transaction n'est pas terminée. Toutefois, les autres transactions ne peuvent pas acquérir un verrou exclusif tant que le verrou partagé n'a pas été libéré.
Le tableau suivant décrit la compatibilité des modes de verrou les plus courants.
Mode accordé existant | ||||||
---|---|---|---|---|---|---|
Mode requis |
IS |
S |
U |
IX |
SIX |
X |
Intent partagé (IS) |
Oui |
Oui |
Oui |
Oui |
Oui |
Non |
Partagé (S) |
Oui |
Oui |
Oui |
Non |
Non |
Non |
Mise à jour (U) |
Oui |
Oui |
Non |
Non |
Non |
Non |
Intent exclusif (IX) |
Oui |
Non |
Non |
Oui |
Non |
Non |
Partagé avec intent exclusif (SIX) |
Oui |
Non |
Non |
Non |
Non |
Non |
Exclusif (X) |
Non |
Non |
Non |
Non |
Non |
Non |
Remarque : |
---|
Un verrou intent exclusif (IX) est compatible avec un mode de verrouillage IX car IX signifie l'intention de mettre à jour uniquement certaines lignes et non pas toutes les lignes. Les autres transactions qui essaient de lire ou de mettre à jour certaines lignes sont aussi autorisées si elles ne mettent pas à jour les lignes en cours de mise à jour par les autres transactions. |
Matrice complète de la compatibilité de verrouillage
Utilisez le tableau suivant pour déterminer la compatibilité de tous les modes de verrou disponibles dans Microsoft SQL Server 2005.
Voir aussi
Concepts
Granularité et hiérarchie des verrous
Modes de verrouillage
Verrouillage d'étendues de clés