1) Sí , una selección con NOLOCK
se completará más rápido que una selección normal.
2) Sí , una selección con NOLOCK
permitirá que otras consultas contra la tabla afectada se completen más rápido que una selección normal.
¿Por qué sería esto?
NOLOCK
generalmente (dependiendo de su motor de base de datos) significa darme sus datos, y no me importa en qué estado se encuentre, y no me moleste en mantenerlos quietos mientras lee. Es todo más rápido, menos intensivo en recursos y muy muy peligroso.
Se le debe advertir que nunca haga una actualización o realice algo crítico para el sistema, o donde se requiera una corrección absoluta utilizando datos que se originaron en una NOLOCK
lectura. Es absolutamente posible que estos datos contengan filas que se eliminaron durante la ejecución de la consulta o que se hayan eliminado en otras sesiones que aún no se han finalizado. Es posible que estos datos incluyan filas que se hayan actualizado parcialmente. Es posible que estos datos contengan registros que violen las restricciones de clave externa. Es posible que estos datos excluyan filas que se han agregado a la tabla pero que aún no se han confirmado.
Realmente no tiene forma de saber cuál es el estado de los datos.
Si está tratando de obtener cosas como un Recuento de filas u otros datos de resumen donde un margen de error es aceptable, entonces NOLOCK
es una buena manera de aumentar el rendimiento de estas consultas y evitar que afecten negativamente el rendimiento de la base de datos.
Siempre use la NOLOCK
sugerencia con gran precaución y trate los datos que devuelva de forma sospechosa.