Eu tenho uma transação de longa execução (chamada, digamos, T1) que executa algumas exclusões, atualizações e inserções em uma tabela no SQL Server 2008 R2. Ao mesmo tempo, outro processo executa periodicamente instruções de seleção desta tabela.
Nas configurações de isolamento padrão (READ COMMITTED, acho?), O T1 bloqueia a execução de quaisquer instruções de seleção até que a transação seja confirmada ou revertida.
O que eu gostaria de ver é que as instruções select funcionem com dados consistentes, mesmo enquanto a transação está em andamento. Acredito que o isolamento do INSTANTÂNEO pode ajudar, mas não tenho certeza se estou indo na direção certa. Esse seria o melhor nível de isolamento para este aplicativo?
Em segundo lugar, não tenho controle sobre o processo que está chamando as instruções select, mas tenho controle sobre o aplicativo .NET que chama T1. Seriam necessárias alterações no nível de isolamento tanto nas instruções de seleção quanto no T1, ou seria suficiente marcar apenas T1 como tendo um nível de isolamento diferente?
fonte