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

Sentencias SELECT de SQL Server que causan bloqueo

SELECT puede bloquear actualizaciones. Un modelo de datos y una consulta diseñados correctamente solo causarán un bloqueo mínimo y no serán un problema. La pista 'habitual' CON NOLOCK es casi siempre la respuesta incorrecta. La respuesta correcta es ajustar su consulta para que no explore tablas enormes.

Si la consulta no se puede ajustar, primero debe considerar el nivel de AISLAMIENTO DE INSTANTÁNEAS , en segundo lugar, debería considerar usar INSTANTÁNEAS DE LA BASE DE DATOS y la última opción debería ser DIRTY READS (y es mejor cambiar el nivel de aislamiento en lugar de usar la SUGERENCIA NOLOCK). Tenga en cuenta que las lecturas sucias, como su nombre lo indica claramente, devolverán datos inconsistentes (por ejemplo, su hoja total puede estar desequilibrada).