Mam długo działającą transakcję (o nazwie powiedzmy T1), która wykonuje niektóre operacje usuwania, aktualizacji i wstawiania w tabeli w SQL Server 2008 R2. W tym samym czasie inny proces okresowo uruchamia instrukcje select z tej tabeli.
W domyślnych ustawieniach izolacji (READ COMMITTED, jak sądzę?) T1 blokuje wykonywanie wszystkich instrukcji select do momentu zatwierdzenia lub wycofania transakcji.
Chciałbym zobaczyć, aby instrukcje select działały na spójnych danych, nawet gdy transakcja jest w toku. Wierzę, że izolacja SNAPSHOT może pomóc, ale nie jestem pewien, czy idę w dobrym kierunku. Czy byłby to najlepszy poziom izolacji dla tej aplikacji?
Po drugie, nie mam żadnej kontroli nad procesem wywoływania instrukcji select, ale mam kontrolę nad aplikacją .NET, która wywołuje T1. Czy wymagane byłyby jakiekolwiek zmiany poziomu izolacji zarówno w instrukcjach select, jak i T1, czy wystarczyłoby zaznaczyć tylko T1 jako inny poziom izolacji?