Šis straipsnis yra veidrodinis mašininio vertimo straipsnis, spauskite čia norėdami pereiti prie originalaus straipsnio.

Rodinys: 28055|Atsakyti: 3

[Šaltinis] SQL serverio kelių versijų sutapimo valdymas

[Kopijuoti nuorodą]
Paskelbta 2021-01-28 17:55:52 | | |
Duomenų bazės nuoseklumas taip pat yra vienas iš svarbių rodiklių DBVS veikimui matuoti. Šiuo metu dauguma komercinių duomenų bazių (DB2, SQL Server) naudoja dviejų fazių užrakinimo (2PL) protokolą lygiagrečiai valdyti, kuris užtikrina vienalaikio operacijų vykdymo serializavimą. Tačiau 2PL turi užrakinti visus duomenis, kad galėtų juos skaityti ar rašyti. Blokavimo suderinamumo matricoje S užraktai (bendrinimo užraktai) ir X užraktai (išskirtiniai užraktai) yra nesuderinami, taigi, kai 1 operacija atlieka duomenų A nuskaitymo operaciją (plius S užraktas), o 2 operacija nori įrašyti į duomenis (pridėti X užraktą), tada 2 operacija turi palaukti, kol 1 operacija atlaisvins S užraktą duomenims A, prieš tęsdama. Kelių versijų lygiagrečių valdymas (MVCC) gerai išsprendžia šią problemą. Kelių versijų sistemoje kiekvienas rašymo duomenys sukuria naują versiją, o skaitymo operacija gali nuskaityti atitinkamą versiją pagal poreikį, todėl skaitymo ir rašymo operacijos neblokuoja viena kitos. MVCC padidina sutapimą, bet taip pat įveda saugyklos pridėtines išlaidas išlaikant kelias versijas.

"Microsoft SQL Server" duomenų bazės variklis pristato naują esamo operacijų izoliavimo lygio diegimą - įsipareigojusius skaitymus, kurie pateikia išrašo lygio momentines kopijas naudojant eilučių versijų kūrimą. SQL serverio duomenų bazės modulis taip pat pristato naują operacijų izoliavimo lygį – momentines kopijas, kad būtų pateiktos operacijos lygio momentinės kopijos, kurios taip pat naudoja eilučių versijų kūrimą.

Nustačius READ_COMMITTED_SNAPSHOT duomenų bazės parinktį į ĮJUNGTA, galima atlikti skaitymo izoliavimą naudojant eilučių versijų kūrimą. Nustačius ALLOW_SNAPSHOT_ISOLATION duomenų bazės parinktį į ĮJUNGTA, galima izoliuoti momentinę kopiją. Kai duomenų bazėje įjungta kuri nors parinktis, duomenų bazės modulis palaiko kiekvienos modifikuotos eilutės versiją. Kai operacija modifikuoja eilutę, eilutės vaizdas prieš modifikavimą nukopijuojamas į versijų saugyklos puslapį. Versijų saugykla yra duomenų puslapių rinkinys tempdb. Jei yra kelios operacijų modifikavimo eilutės, kelios tos eilutės versijos bus susietos versijų grandinėje. Skaitymo operacija naudojant eilučių versijų kūrimą nuskaitys paskutinę kiekvienos eilutės versiją, kuri buvo patvirtinta operacijos arba išrašo pradžios metu.

Programos, parašytos "SQL Server 2008" arba naujos "SQL Server", įgyvendina skaitymo įsipareigojimų izoliavimą naudojant eilučių versijų kūrimą, nurodydami skaitymo įsipareigojimų operacijų izoliavimo lygį, kai READ_COMMITTED_SNAPSHOT duomenų bazės parinktis yra ĮJUNGTA. Visi skaitymai bus peržiūrėti eilutės versiją, kuri buvo įvykdyta, kai pareiškimas prasidėjo. Tai pateiks išrašo lygio duomenų momentinę kopiją.

Programos, parašytos SQL serveriui, įgyvendins momentinių kopijų izoliavimą nurodydamos momentinės kopijos operacijos izoliavimo lygį, kai ALLOW_SNAPSHOT_ISOLATION duomenų bazės parinktis yra ĮJUNGTA. Visi momentinės kopijos operacijos skaitymai peržiūrės eilutės versiją, kuri buvo patvirtinta operacijos pradžioje. Tai suteiks operacijos lygio duomenų momentinę nuotrauką.

Operacijų, kuriose naudojami eilutėmis pagrįsti izoliavimo lygiai, skaitymai nereikalauja bendrų duomenų užraktų. Tai reiškia, kad skaitytojai, naudojantys eilučių versijų kūrimą, netrukdo kitiems skaitytojams ar rašytojams pasiekti tuos pačius duomenis. Panašiai rašytojas netrukdo skaitytojui. Tačiau rašytojai trukdo vieni kitiems (net ir dirbdami izoliacijos lygiu, pagrįstu eilučių versijomis). Dvi rašymo operacijos negali modifikuoti tų pačių duomenų vienu metu.

Momentinių nuotraukų izoliavimo funkcija išplečia SQL Server 2008 užrakinimo sistemą, leisdama programoms peržiūrėti reikšmes prieš atliekant bet kokius duomenų pakeitimus. Tai neleidžia užrakinti programos, tačiau vis tiek pateikiami tikrai pateikti duomenys. "SQL Server 2008" skaitymo įsipareigojimo momentinė kopija reikalauja duomenų bazės administratoriaus, kad būtų galima nuskaityti duomenis tik skaitymo operacijomis. Taigi SI sutapimo kontrolė tik skaitymo operacijų yra labai gera, tačiau neaišku, ar taip yra atnaujinimo operacijų atveju. Ilgalaikiams atnaujinimo sandoriams nepalankiau konkuruoti su trumpalaikiais aukšto lygio sandoriais. Jei operacija tarp duomenų bazių bando naudoti momentinės kopijos izoliavimo (SI) standartą, o ne visas duomenų bazes, operacija nepavyksta. Tai neabejotinai sukuria tam tikrų kliūčių mastelio keitimui. Atrodo, kad "Microsoft" dar turi nueiti ilgą kelią, kad pasiektų savo SI, kuri yra stipresnė nei SQL 92 specifikacija.

Prieš atlikdami bet kokį modifikavimą, padarykite ankstesnės versijos kopiją, o visos tolesnės skaitymo operacijos nuskaitys nukopijuotą versiją, o modifikavimas sukurs naują versiją. Tokiu būduSkaitymo ir rašymo operacijos neblokuoja viena kitos. Šio eilutės versijų kūrimo mechanizmo privalumas yra tas, kad programos sutapimas yra gana didelis, tačiau trūkumas yra tas, kad nors vartotojas skaito ne nešvarius duomenis, tai gali būti duomenų reikšmė, kuri yra modifikuojama ir netrukus baigsis galioti. Jei modifikuosite duomenis pagal šią pasibaigusią reikšmę, tai sukels loginę klaidą

SQL komandos:


Nuorodos nuorodos:

Hipersaito prisijungimas matomas.
Hipersaito prisijungimas matomas.
Hipersaito prisijungimas matomas.
Hipersaito prisijungimas matomas.
Hipersaito prisijungimas matomas.
Hipersaito prisijungimas matomas.





Ankstesnis:"Elasticsearch" (ES) atkartoja klonų indeksą
Kitą:cubase10.5 pamoka
Paskelbta 2021-01-29 09:13:40 |
Xuexi
Paskelbta 2021-07-15 20:37:16 |
Aš noriu, aš noriu, aš noriu, aš noriunorėti
Paskelbta 2021-12-12 01:22:12 |
Aš noriu, aš noriu, aš noriu
Atsakomybės apribojimas:
Visa programinė įranga, programavimo medžiaga ar straipsniai, kuriuos skelbia Code Farmer Network, yra skirti tik mokymosi ir mokslinių tyrimų tikslams; Aukščiau nurodytas turinys negali būti naudojamas komerciniais ar neteisėtais tikslais, priešingu atveju vartotojai prisiima visas pasekmes. Šioje svetainėje pateikiama informacija gaunama iš interneto, o ginčai dėl autorių teisių neturi nieko bendra su šia svetaine. Turite visiškai ištrinti aukščiau pateiktą turinį iš savo kompiuterio per 24 valandas nuo atsisiuntimo. Jei jums patinka programa, palaikykite autentišką programinę įrangą, įsigykite registraciją ir gaukite geresnes autentiškas paslaugas. Jei yra kokių nors pažeidimų, susisiekite su mumis el. paštu.

Mail To:help@itsvse.com