Compatibilité des verrous
Si une ressource est déjà verrouillée par une transaction et qu'une deuxième transaction doit accéder à la ressource, Microsoft SQL Server Compact 3.5 détermine si le deuxième verrou est accordé sur la base de la compatibilité du mode de verrouillage utilisé par la première transaction.
Seuls des types de verrous compatibles peuvent être placés sur une ressource déjà verrouillée. Par exemple, lorsqu'un verrou exclusif est appliqué à une ressource, aucune autre transaction ne peut acquérir de verrou partagé, de mise à jour ou exclusif sur la ressource en question tant que le verrou exclusif n'est pas libéré au terme de la première transaction. En revanche, si c'est un verrou partagé qui est appliqué à une ressource, d'autres transactions peuvent également acquérir un verrou partagé ou de mise à jour sur cette ressource, même si la première transaction n'est pas terminée. Aucune autre transaction ne peut toutefois acquérir de verrou exclusif tant le verrou partagé n'est pas libéré.
Les modes de verrouillage des ressources ont une matrice de compatibilité qui indique quels verrous sont compatibles avec les verrous obtenus sur la même ressource, énumérés par degré de verrouillage croissant.
Le tableau suivant indique les modes de verrouillage demandés et leur compatibilité avec le mode de verrouillage existant.
Mode demandé |
Verrou intentionnel de partage (IS) |
Partagé (S) |
Mise à jour (U) |
Verrou intentionnel d'accès exclusif (IX) |
Partagé avec verrou intentionnel d'accès exclusif (SIX) |
Exclusif (X) |
---|---|---|---|---|---|---|
Verrou intentionnel de partage (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 verrou intentionnel d'accès exclusif (SIX) |
Oui |
Non |
Non |
Non |
Non |
Non |
Exclusif (X) |
Non |
Non |
Non |
Non |
Non |
Non |
Notes
Un verrou intentionnel d'accès exclusif est compatible avec un mode de verrouillage intentionnel d'accès exclusif vu que l'intention est de mettre à jour uniquement une partie et non l'ensemble des lignes. D'autres transactions sont autorisées à lire ou à mettre à jour certaines des lignes, à condition que les lignes affectées ne soient pas les mêmes que celles mises à jour par d'autres transactions.
Matrice de compatibilité des verrous
SQL Server Compact 3.5 prend en charge les types de verrous suivants :
- Sch-S, Sch-X, S, U, X, IS, IU, IX, SIU, SIX, UIX
Notes
Le verrou Stabilité du schéma (Sch-S) est compatible avec tous les modes de verrouillage à l'exception du mode Modification du schéma (Sch-M). Le mode Sch-M n'est compatible avec aucun mode de verrouillage.
Pour plus d'informations sur la matrice de compatibilité des verrous, consultez la documentation en ligne de SQL Server.