Dit artikel is een spiegelartikel van machinevertaling, klik hier om naar het oorspronkelijke artikel te gaan.

Bekijken: 8936|Antwoord: 0

SQL locks NOLOCK, HOLDLOCK, UPDLOCK, TABLOCK, TABLOCKX

[Link kopiëren]
Geplaatst op 20-07-2016 14:02:51 | | |

NOLOCK
Wanneer deze optie is geselecteerd, leest of wijzigt SQL Server gegevens zonder enige locks. In dit geval kan de gebruiker gegevens lezen van een Uncommitted Transaction of Roll Back, bekend als "dirty data".

HOLDLOCK
Wanneer deze optie is geselecteerd, behoudt SQL Server deze gedeelde vergrendeling tot het einde van de hele transactie zonder deze onderweg vrij te geven.

UPDLOCK
Wanneer deze optie is geselecteerd, gebruikt SQL Server een modify lock in plaats van een shared lock bij het lezen van data en behoudt deze lock tot het einde van de hele transactie of het commando. Deze optie zorgt ervoor dat meerdere processen tegelijkertijd data kunnen lezen, maar alleen dat proces kan de data wijzigen.

TABLOCK
Wanneer deze optie is geselecteerd, plaatst SQL Server een gedeelde lock op de hele tabel totdat het commando eindigt. Deze optie zorgt ervoor dat andere processen alleen de data kunnen lezen en niet kunnen wijzigen.

PAGLOCK
Deze optie is de standaardoptie, en wanneer geselecteerd, gebruikt SQL Server een gedeelde paginavergrendeling.

TABLOCKX (Exclusief Tafelslot)
Wanneer deze optie wordt geselecteerd, plaatst SQL Server een lock op de hele tabel totdat het commando of de transactie is beëindigd. Dit voorkomt dat andere processen de gegevens in de tabel lezen of wijzigen.

HOLDLOCK houdt de gedeelde vergrendeling vast totdat de volledige transactie is voltooid en moet worden vrijgegeven zodra het vergrendelde object niet meer nodig is, gelijk aan het SERIALIZABLE transactie-isolatieniveau

De NOLOCK-instructie wordt uitgevoerd zonder een gedeelde vergrendeling uit te voeren, waardoor dirty reads mogelijk zijn, wat gelijk is aan het READ UNCOMMITTED transactieisolatieniveau

PAGLOCK gebruikt meerdere paginavergrendelingen waarbij één tabelslot wordt gebruikt

READPAST laat de SQL-server alle vergrendelde regels overslaan en transacties uitvoeren, en voor READ UNCOMMITTED transactieisolatieniveaus alleen RID-locks overslaan, niet pagina-, zone- en tabellocks

ROWLOCK handhaaft het gebruik van rowlocks

TABLOCKX handhaaft het gebruik van een exclusieve tabel-niveau lock, die voorkomt dat andere transacties de tabel tijdens de transactie gebruiken

UPLOCK dwingt het gebruik van updates af bij het lezen van een tabel zonder gedeelde vergrendeling

Opmerking: Het verschil tussen het vergrendelen van een tabel in een database
SELECTEER * UIT de tabel MET (HOLDLOCK) Andere transacties kunnen de tabel lezen, maar kunnen niet bijwerken of verwijderen
SELECTEER * UIT tabel MET (TABLOCKX) Andere transacties kunnen tabellen niet lezen, bijwerken en verwijderen




Vorig:Locks, dirty reads, onherhaalbare reads en false reads in SQL
Volgend:SQL Server kijkt naar de deadlock en geeft die deadlock op
Disclaimer:
Alle software, programmeermaterialen of artikelen die door Code Farmer Network worden gepubliceerd, zijn uitsluitend bedoeld voor leer- en onderzoeksdoeleinden; De bovenstaande inhoud mag niet worden gebruikt voor commerciële of illegale doeleinden, anders dragen gebruikers alle gevolgen. De informatie op deze site komt van het internet, en auteursrechtconflicten hebben niets met deze site te maken. Je moet bovenstaande inhoud volledig van je computer verwijderen binnen 24 uur na het downloaden. Als je het programma leuk vindt, steun dan de echte software, koop registratie en krijg betere echte diensten. Als er sprake is van een inbreuk, neem dan contact met ons op via e-mail.

Mail To:help@itsvse.com