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

¿Debería usar transacciones SQL mientras leo registros?

Si está consultando todos los registros en una sola consulta y recuperándolos de una sola vez, no hay necesidad. Todo está envuelto en una transacción implícita. Es decir, incluso si recupera un millón de registros, e incluso si otros procesos están cambiando los registros, verá cómo se veían todos los millones de registros en el mismo momento.

Las únicas ocasiones en las que realmente necesitaría una transacción (y, a menudo, una sugerencia de bloqueo específica) en un proceso de solo lectura son:
- Usted lee los registros "por partes" y no necesita nada más para modificar los valores mientras iterar sin embargo. [Como un conjunto de registros conectado en ADO por el que luego pasa el cursor.]
- Usted lee algunos datos, hace algunos cálculos, luego lee algunos datos relacionados, pero asumiendo que nada cambió mientras tanto.


En resumen, necesita transacciones cuando desea que otros procesos dejen de interferir con sus datos entre sentencias SQL.