У меня есть длительная транзакция (называемая, скажем, T1), которая выполняет некоторые операции удаления, обновления и вставки в таблицу в SQL Server 2008 R2. В то же время другой процесс периодически запускает операторы выбора из этой таблицы.
При настройках изоляции по умолчанию (ЧИТАТЬ, ЧТО ЯВЛЯЕТСЯ?) T1 блокирует выполнение любых операторов выбора до тех пор, пока транзакция не завершится или не будет отменена.
Я хотел бы, чтобы операторы select работали с согласованными данными, даже когда транзакция еще не завершена. Я верю, что изоляция SNAPSHOT может помочь, но я не уверен, что я иду в правильном направлении. Будет ли это лучший уровень изоляции для этого приложения?
Во-вторых, я не имею никакого контроля над процессом, который вызывает операторы select, но у меня есть контроль над приложением .NET, которое вызывает T1. Будут ли необходимы какие-либо изменения уровня изоляции как для операторов выбора, так и для T1, или будет достаточно отметить только T1 как имеющий другой уровень изоляции?