Sqlserver
 sql >> Database >  >> RDS >> Sqlserver

Qual è (sono) la differenza tra NOLOCK e UNCOMMITTED

NOLOCK : Equivale a READ UNCOMMITTED (fonte:MSDN )

NOLOCK o READ UNCOMMITTED Specifica che sono consentite letture sporche. Non vengono emessi blocchi condivisi per impedire ad altre transazioni di modificare i dati letti dalla transazione corrente e i blocchi esclusivi impostati da altre transazioni non impediscono alla transazione corrente di leggere i dati bloccati. Consentire letture sporche può causare una maggiore concorrenza, ma a costo di leggere le modifiche ai dati che vengono poi annullate da altre transazioni

READ UNCOMMITTED e NOLOCK i suggerimenti si applicano solo ai blocchi dati. Tutte le query, comprese quelle with READ UNCOMMITTED and NOLOCK suggerimenti, acquisire i blocchi Sch-S (stabilità dello schema) durante la compilazione e l'esecuzione. Per questo motivo, le query vengono bloccate quando una transazione simultanea mantiene un blocco Sch-M (modifica dello schema) sulla tabella