Sobes.tech
Junior — Middle

Ի՞նչ է տվյալների բազայի կառավարման համակարգերում Repeatable Read անջատման մակարդակի օգտագործման նպատակը։

sobes.tech AI

Պատասխան AI-ից

Տրանսակցիաների առանձնացման մակարդակը Repeatable Read նախատեսված է կանխելու ոչ կրկնվող ընթերցման (non-repeatable read) երևույթը: Սա նշանակում է, որ նույն տրանցակցիայի շրջանակում, նույն տվյալները կրկին ընթերցելիս, դրանք չեն փոխվի, նույնիսկ եթե այլ տրանցակցիաներ փորձում են դրանք թարմացնել:

Նպատակներ:

  • Համոզվել, որ տրանցակցիայի սկզբում ընթերցված տվյալները կմնան անփոփոխ մինչև նրա ավարտը:
  • Պատկանել այն իրավիճակներին, երբ մի տրանցակցիա տեսնում է տարբեր արժեքներ նույն գրանցումների համար կրկնվող ընթերցումների ժամանակ:

Այնուամենայնիվ, Repeatable Read-ով հնարավոր են ֆանտոմային ընթերցումներ (phantom reads), երբ նոր տողեր, որոնք բավարարում են հարցման պայմանը, հայտնվում են այլ տրանցակցիաների արդյունքներում:

C# և .NET-ում, Repeatable Read մակարդակը կարող է սահմանվել տրանցակցիաների հետ աշխատելիս TransactionScope կամ SqlTransaction միջոցով: