Junior — Middle
Mi a célja az ismételhető olvasási szint használatának az adatbázis-kezelő rendszerekben?
sobes.tech MI
Válasz az MI-től
A Repeatable Read tranzakciós izolációs szint célja, hogy megakadályozza a nem ismételhető olvasás (non-repeatable read) jelenségét. Ez azt jelenti, hogy ugyanazon tranzakción belül ugyanazokat az adatokat újra olvasva, azok nem fognak megváltozni, még akkor sem, ha más tranzakciók próbálják frissíteni azokat.
Célok:
- Biztosítani, hogy a tranzakció elején olvasott adatok a tranzakció végéig változatlanok maradjanak.
- Megakadályozni, hogy egy tranzakció különböző értékeket lásson ugyanazon rekordok esetében ismételt olvasások során.
Azonban, a Repeatable Read esetén, előfordulhatnak fantom olvasások (phantom reads), amikor új sorok jelennek meg, amelyek megfelelnek a lekérdezés feltételeinek, más tranzakciók eredményeként.
C# és .NET környezetben, a Repeatable Read szint beállítható tranzakciók használatakor TransactionScope vagy SqlTransaction segítségével.