Sobes.tech
Junior — Middle

Aký je cieľ použitia úrovne izolácie Repeatable Read v systémoch správy databáz?

sobes.tech AI

Odpoveď od AI

Úroveň izolácie transakcií Repeatable Read je navrhnutá tak, aby zabránila fenoménu neustáleho čítania (non-repeatable read). To znamená, že v rámci jednej transakcie pri opakovanom čítaní tých istých údajov sa tieto údaje nezmenia, aj keď sa ich pokúsia aktualizovať iné transakcie.

Ciele:

  • Zabezpečiť, že údaje prečítané na začiatku transakcie zostanú nezmenené až do jej ukončenia.
  • Zabrániť situáciám, keď jedna transakcia vidí odlišné hodnoty tých istých záznamov pri opakovaných čítaniach.

Avšak, pri Repeatable Read môžu nastať fenomény ako fantómové čítania (phantom reads), keď sa nové riadky, ktoré spĺňajú podmienku dotazu, objavia ako výsledok iných transakcií.

V C# a .NET je možné úroveň Repeatable Read nastaviť pri práci s transakciami cez TransactionScope alebo SqlTransaction.