Sqlserver
 sql >> Base de données >  >> RDS >> Sqlserver

Quelle est (sont) la différence entre NOLOCK et UNCOMMITTED

NOLOCK : Est équivalent à READ UNCOMMITTED (source :MSDN )

NOLOCK ou READ UNCOMMITTED Spécifie que les lectures modifiées sont autorisées. Aucun verrou partagé n'est émis pour empêcher d'autres transactions de modifier les données lues par la transaction en cours, et les verrous exclusifs définis par d'autres transactions n'empêchent pas la transaction en cours de lire les données verrouillées. Autoriser les lectures incorrectes peut entraîner une concurrence plus élevée, mais au prix de la lecture de modifications de données qui sont ensuite annulées par d'autres transactions

READ UNCOMMITTED et NOLOCK les conseils s'appliquent uniquement aux verrous de données. Toutes les requêtes, y compris celles with READ UNCOMMITTED and NOLOCK conseils, acquérir des verrous Sch-S (stabilité du schéma) lors de la compilation et de l'exécution. De ce fait, les requêtes sont bloquées lorsqu'une transaction concurrente détient un verrou Sch-M (modification de schéma) sur la table