Tengo una transacción de larga duración (llamada, por ejemplo, T1) que realiza algunas eliminaciones, actualizaciones e inserciones en una tabla en SQL Server 2008 R2. Al mismo tiempo, otro proceso ejecuta periódicamente sentencias select de esta tabla.
Bajo la configuración de aislamiento predeterminada (¿LEÍDO COMPROMETIDO, creo?), T1 bloquea cualquier declaración de selección hasta que la transacción se confirme o se revierta.
Lo que me gustaría ver es que las declaraciones select funcionen en datos consistentes incluso mientras la transacción está en curso. Creo que el aislamiento SNAPSHOT puede ayudar, pero no estoy seguro de si voy en la dirección correcta. ¿Sería este el mejor nivel de aislamiento para esta aplicación?
En segundo lugar, no tengo ningún control sobre el proceso que está llamando a las instrucciones select, pero sí tengo control sobre la aplicación .NET que llama a T1. ¿Se requerirían cambios en el nivel de aislamiento tanto en las declaraciones select como en T1, o sería suficiente marcar solo T1 como teniendo un nivel de aislamiento diferente?