Šis raksts ir mašīntulkošanas spoguļraksts, lūdzu, noklikšķiniet šeit, lai pārietu uz oriģinālo rakstu.

Skats: 8936|Atbildi: 0

SQL slēdzenes NOLOCK, HOLDLOCK, UPDLOCK, TABLOCK, TABLOCKX

[Kopēt saiti]
Publicēts 20.07.2016 14:02:51 | | |

NOLOCK
Ja šī opcija ir atlasīta, SQL Server lasa vai modificē datus bez bloķēšanas. Šādā gadījumā lietotājs var nolasīt datus no neveikta darījuma vai atcelšanas, ko sauc par "netīrajiem datiem".

AIZTURĒŠANA
Ja šī opcija ir atlasīta, SQL Server saglabā šo koplietojamo bloķēšanu līdz visas transakcijas beigām, neatlaižot to ceļā.

UPDLOCK
Ja šī opcija ir atlasīta, SQL Server izmanto modificēšanas bloķēšanu, nevis koplietojamo slēdzeni, lasot datus, un saglabā šo bloķēšanu līdz visas transakcijas vai komandas beigām. Šī opcija nodrošina, ka vairāki procesi var lasīt datus vienlaicīgi, bet tikai šis process var modificēt datus.

TABLOCK
Ja šī opcija ir atlasīta, SQL Server ievieto koplietojamu bloķēšanu visai tabulai, līdz komanda beidzas. Šī opcija nodrošina, ka citi procesi var tikai nolasīt, nevis modificēt datus.

PAGLOCK
Šī opcija ir noklusējuma opcija, un, ja tā ir atlasīta, SQL Server izmanto koplietojamu lapas bloķēšanu.

TABLOCKX (ekskluzīva galda slēdzene)
Ja šī opcija ir atlasīta, SQL Server bloķē visu tabulu līdz komandas vai transakcijas beigām. Tas neļaus citiem procesiem lasīt vai modificēt datus tabulā.

HOLDLOCK saglabā koplietojamo bloķēšanu, līdz visa transakcija ir pabeigta, un tā ir jāatlaiž, tiklīdz bloķētais objekts nav nepieciešams, kas ir vienāds ar SERIALIZABLE transakcijas izolācijas līmeni

NOLOCK priekšraksts tiek izpildīts, neizsniedzot koplietojamu slēdzeni, pieļaujot netīrus lasījumus, kas ir vienādi ar READ UNCOMMITTED darījumu izolācijas līmeni

PAGLOCK izmanto vairākas lappušu bloķēšanas, kur tiek izmantota viena tabulas bloķēšana

READPAST ļauj sql serverim izlaist visas bloķētās rindas un izpildīt transakcijas, un READ UNCOMMITTED transakciju izolācijas līmeņiem izlaist tikai RID slēdzenes, nevis lapas, zonas un tabulas bloķēšanas

ROWLOCK piespiež airu slēdzenes izmantošanu

TABLOCKX ievieš ekskluzīvas tabulas līmeņa bloķēšanas izmantošanu, kas neļauj jebkuram citam darījumam izmantot tabulu darījuma laikā

UPLOCK piespiež izmantot atjauninājumus, lasot tabulu bez koplietojamas bloķēšanas

Piezīme: Atšķirība starp tabulas bloķēšanu datu bāzē
SELECT * FROM tabula AR (HOLDLOCK) Citas transakcijas var nolasīt tabulu, bet nevar atjaunināt vai izdzēst
SELECT * FROM tabula AR (TABLOCKX) Citi darījumi nevar lasīt, atjaunināt un dzēst tabulas




Iepriekšējo:Bloķēšana, netīra lasīšana, neatkārtojama lasīšana un nepareiza lasīšana SQL
Nākamo:SQL Server aplūko strupceļu un atbrīvo strupceļu
Atruna:
Visa programmatūra, programmēšanas materiāli vai raksti, ko publicē Code Farmer Network, ir paredzēti tikai mācību un pētniecības mērķiem; Iepriekš minēto saturu nedrīkst izmantot komerciāliem vai nelikumīgiem mērķiem, pretējā gadījumā lietotājiem ir jāuzņemas visas sekas. Informācija šajā vietnē nāk no interneta, un autortiesību strīdiem nav nekāda sakara ar šo vietni. Iepriekš minētais saturs ir pilnībā jāizdzēš no datora 24 stundu laikā pēc lejupielādes. Ja jums patīk programma, lūdzu, atbalstiet oriģinālu programmatūru, iegādājieties reģistrāciju un iegūstiet labākus oriģinālus pakalpojumus. Ja ir kādi pārkāpumi, lūdzu, sazinieties ar mums pa e-pastu.

Mail To:help@itsvse.com