sql >> Base de Datos >  >> RDS >> Sqlserver

¿Cuál es (son) la diferencia entre NOLOCK y UNCOMMITTED?

NOLOCK: Es equivalente a READ UNCOMMITTED (fuente:MSDN )

NOLOCK o READ UNCOMMITTED Especifica que se permiten lecturas sucias. No se emiten bloqueos compartidos para evitar que otras transacciones modifiquen los datos leídos por la transacción actual, y los bloqueos exclusivos establecidos por otras transacciones no impiden que la transacción actual lea los datos bloqueados. Permitir lecturas sucias puede causar una mayor simultaneidad, pero a costa de leer modificaciones de datos que luego son revertidas por otras transacciones

READ UNCOMMITTED y NOLOCK las sugerencias solo se aplican a los bloqueos de datos. Todas las consultas, incluidas aquellas with READ UNCOMMITTED and NOLOCK sugerencias, adquirir bloqueos Sch-S (estabilidad del esquema) durante la compilación y la ejecución. Debido a esto, las consultas se bloquean cuando una transacción simultánea mantiene un bloqueo Sch-M (modificación de esquema) en la tabla