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

Rodinys: 8936|Atsakyti: 0

SQL užraktai NOLOCK, HOLDLOCK, UPDLOCK, TABLOCK, TABLOCKX

[Kopijuoti nuorodą]
Paskelbta 2016-07-20 14:02:51 | | |

NOLOCK
Pasirinkus šią parinktį, SQL serveris skaito arba modifikuoja duomenis be jokių užraktų. Tokiu atveju vartotojas gali nuskaityti duomenis iš neįvykdytos operacijos arba atšaukimo, vadinamų "nešvariais duomenimis".

UŽRAKTAS
Pasirinkus šią parinktį, SQL serveris išlaiko šį bendrai naudojamą užraktą iki visos operacijos pabaigos, neatleisdamas jo kelyje.

UPDLOCK
Pasirinkus šią parinktį, SQL serveris skaitydamas duomenis naudoja modifikavimo užraktą, o ne bendrai naudojamą užraktą ir išlaiko šį užraktą iki visos operacijos ar komandos pabaigos. Ši parinktis užtikrina, kad keli procesai gali nuskaityti duomenis vienu metu, tačiau tik šis procesas gali modifikuoti duomenis.

TABLOKAS
Pasirinkus šią parinktį, SQL serveris užraktuos visą lentelę, kol komanda baigsis. Ši parinktis užtikrina, kad kiti procesai gali tik nuskaityti, o ne keisti duomenis.

PAGLOCK
Ši parinktis yra numatytoji parinktis, o pasirinkus SQL serveris naudoja bendrai naudojamą puslapio užraktą.

TABLOCKX (išskirtinis stalo užraktas)
Pasirinkus šią parinktį, SQL serveris užrakins visą lentelę, kol baigsis komanda arba operacija. Tai neleis kitiems procesams skaityti ar modifikuoti lentelės duomenų.

HOLDLOCK išlaiko bendrai naudojamą užraktą, kol bus baigta visa operacija, ir turėtų būti atleistas, kai tik užrakintas objektas nebereikalingas, lygus SERIALIZABLE operacijos izoliavimo lygiui

NOLOCK pareiškimas vykdomas neišduodant bendro užrakto, leidžiant nešvarius nuskaitymus, kurie yra lygūs READ UNCOMMITTED operacijos izoliacijos lygiui

PAGLOCK naudoja kelis puslapių užraktus, kai naudojamas vienas stalo užraktas

READPAST leidžia sql serveriui praleisti visas užrakintas eilutes ir vykdyti operacijas, o READ UNCOMMITTED operacijų izoliavimo lygiams praleisti tik RID užraktus, o ne puslapių, zonų ir lentelių užraktus

ROWLOCK užtikrina rowlocks naudojimą

TABLOCKX priverčia naudoti išskirtinį stalo lygio užraktą, kuris neleidžia jokiai kitai operacijai naudoti lentelę operacijos metu

UPLOCK priverčia naudoti naujinimus skaitant lentelę be bendro užrakto

Pastaba: Skirtumas tarp lentelės užrakinimo duomenų bazėje
SELECT * FROM lentelė SU (HOLDLOCK) Kitos operacijos gali skaityti lentelę, bet negali atnaujinti ar panaikinti
SELECT * FROM lentelė SU (TABLOCKX) Kitos operacijos negali skaityti, atnaujinti ir ištrinti lentelių




Ankstesnis:Spynos, nešvarūs skaitymai, nepakartojami skaitymai ir klaidingi skaitymai SQL
Kitą:SQL serveris žiūri į aklavietę ir atleidžia aklavietę
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