Ta članek je zrcalni članek strojnega prevajanja, kliknite tukaj za skok na izvirni članek.

Pogled: 8936|Odgovoriti: 0

SQL zaklepi NOLOCK, HOLDLOCK, UPDLOCK, TABLOCK, TABLOCKX

[Kopiraj povezavo]
Objavljeno na 20. 07. 2016 14:02:51 | | |

NOLOCK
Ko je ta možnost izbrana, SQL Server bere ali spreminja podatke brez kakršnihkoli zaklepov. V tem primeru lahko uporabnik prebere podatke iz nepotrjene transakcije ali povračila, kar je znano kot "umazani podatki".

HOLDLOCK
Ko je ta možnost izbrana, SQL Server ohranja to skupno zaklepanje do konca celotne transakcije, ne da bi ga sprostil na poti.

UPDLOCK
Ko je ta možnost izbrana, SQL Server uporablja zaklep za spreminjanje namesto skupnega zaklepa pri branju podatkov in to zaklepanje ohranja do konca celotne transakcije ali ukaza. Ta možnost zagotavlja, da lahko več procesov bere podatke hkrati, vendar jih lahko spreminja le ta proces.

TABLOCK
Ko je ta možnost izbrana, SQL Server postavi skupno zaklepanje na celotno tabelo, dokler ukaz ne preneha. Ta možnost zagotavlja, da lahko drugi procesi podatke le berejo in jih ne spreminjajo.

PAGLOCK
Ta možnost je privzeta možnost, in ko je izbrana, SQL Server uporablja zaklepanje skupne strani.

TABLOCKX (Ekskluzivna ključavnica za mizo)
Ko je ta možnost izbrana, SQL Server zaklene celotno tabelo, dokler se ukaz ali transakcija ne konča. To bo preprečilo drugim procesom, da bi brali ali spreminjali podatke v tabeli.

HOLDLOCK hrani skupno zaklepanje, dokler ni celotna transakcija zaključena, in ga je treba sprostiti takoj, ko zaklenjeni objekt ni potreben, kar ustreza ravni izolacije transakcije SERIALIZABLE

Izjava NOLOCK se izvede brez izdaje skupnega zaklepa, kar omogoča umazana branja, kar je enako ravni izolacije transakcij READ UNCOMMITTED

PAGLOCK uporablja več zaklepov strani, kjer se uporablja ena zaklep za mizo

READPAST omogoča sql strežniku, da preskoči vse zaklenjene vrstice in izvede transakcije, za izolacijo transakcij READ UNCOMMITTED pa preskoči le RID ključavnice, ne pa zaklepov strani, con in tabel

ROWLOCK zagotavlja uporabo rowlockov

TABLOCKX zagotavlja uporabo ekskluzivne zaklepanosti na ravni tabele, ki preprečuje, da bi katera koli druga transakcija uporabljala tabelo med transakcijo

UPLOCK zahteva uporabo posodobitev pri branju tabele brez skupnega zaklepa

Opomba: Razlika med zaklepanjem tabele v podatkovni bazi
SELECT * FROM table WITH (HOLDLOCK) Druge transakcije lahko berejo tabelo, vendar ne morejo posodobiti ali izbrisati
SELECT * FROM TABLE WITH (TABLOCKX) Druge transakcije ne morejo brati, posodabljati in brisati tabel




Prejšnji:Zaklepi, umazana branja, neponovljiva branja in lažna branja v SQL
Naslednji:SQL Server pogleda mrtvo blokado in jo sprosti
Disclaimer:
Vsa programska oprema, programski materiali ali članki, ki jih izdaja Code Farmer Network, so namenjeni zgolj učnim in raziskovalnim namenom; Zgornja vsebina ne sme biti uporabljena v komercialne ali nezakonite namene, sicer uporabniki nosijo vse posledice. Informacije na tej strani prihajajo z interneta, spori glede avtorskih pravic pa nimajo nobene zveze s to stranjo. Zgornjo vsebino morate popolnoma izbrisati z računalnika v 24 urah po prenosu. Če vam je program všeč, podprite pristno programsko opremo, kupite registracijo in pridobite boljše pristne storitve. Če pride do kakršne koli kršitve, nas prosimo kontaktirajte po elektronski pošti.

Mail To:help@itsvse.com