Sobes.tech
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.