Denne artikel er en spejling af maskinoversættelse, klik venligst her for at springe til den oprindelige artikel.

Udsigt: 8936|Svar: 0

SQL locks NOLOCK, HOLDLOCK, UPDLOCK, TABLOCK, TABLOCKX

[Kopier link]
Opslået på 20/07/2016 14.02.51 | | |

NOLOCK
Når denne mulighed vælges, læser eller ændrer SQL Server data uden nogen låse. I dette tilfælde kan brugeren læse data fra en Uncommitted Transaction eller Roll Back, kendt som "dirty data".

HOLDLOCK
Når denne mulighed vælges, opretholder SQL Server denne delte lås indtil slutningen af hele transaktionen uden at frigive den undervejs.

UPDLOCK
Når denne mulighed vælges, bruger SQL Server en modificeringslås i stedet for en delt lås, når den læser data, og opretholder denne lås indtil slutningen af hele transaktionen eller kommandoen. Denne mulighed sikrer, at flere processer kan læse data samtidig, men kun den proces kan ændre dataene.

TABLOCK
Når denne mulighed vælges, vil SQL Server placere en delt lås på hele tabellen, indtil kommandoen slutter. Denne mulighed sikrer, at andre processer kun kan læse og ikke ændre dataene.

PAGLOCK
Denne mulighed er standardindstillingen, og når den vælges, bruger SQL Server en delt sidelås.

TABLOCKX (Eksklusiv Bordlås)
Når denne mulighed vælges, vil SQL Server låse hele tabellen, indtil kommandoen eller transaktionen slutter. Dette forhindrer andre processer i at læse eller ændre dataene i tabellen.

HOLDLOCK holder den delte lås, indtil hele transaktionen er fuldført, og bør frigives, så snart det låste objekt ikke længere er nødvendigt, svarende til SERIALIZABLE-transaktionsisolationsniveauet

NOLOCK-udsagnet udføres uden at udstede en delt lås, hvilket tillader beskidte læsninger, hvilket svarer til READ UNCOMMITTED transaktionsisolationsniveauet

PAGLOCK bruger flere sidelåse, hvor én tabellås bruges

READPAST lader SQL-serveren springe alle låste linjer over og udføre transaktioner, og for READ UNCOMMITTED transaktionsisolationsniveauer kun springe RID-låse over, ikke side-, zone- og tabellåse

ROWLOCK håndhæver brugen af rowlocks

TABLOCKX håndhæver brugen af en eksklusiv tabel-niveau lås, som forhindrer andre transaktioner i at bruge tabellen under transaktionen

UPLOCK tvinger brugen af opdateringer, når man læser en tabel uden en delt lås

Bemærk: Forskellen på at låse en tabel i en database
VÆLG * FRA tabellen MED (HOLDLOCK) Andre transaktioner kan læse tabellen, men kan ikke opdatere eller slette
VÆLG * FRA tabel MED (TABLOCKX) Andre transaktioner kan ikke læse, opdatere og slette tabeller




Tidligere:Låse, beskidte læsninger, ugentagelige læsninger og falske læsninger i SQL
Næste:SQL Server ser på deadlocken og frigiver deadlocken
Ansvarsfraskrivelse:
Al software, programmeringsmaterialer eller artikler udgivet af Code Farmer Network er kun til lærings- og forskningsformål; Ovenstående indhold må ikke bruges til kommercielle eller ulovlige formål, ellers skal brugerne bære alle konsekvenser. Oplysningerne på dette site kommer fra internettet, og ophavsretstvister har intet med dette site at gøre. Du skal slette ovenstående indhold fuldstændigt fra din computer inden for 24 timer efter download. Hvis du kan lide programmet, så understøt venligst ægte software, køb registrering og få bedre ægte tjenester. Hvis der er nogen overtrædelse, bedes du kontakte os via e-mail.

Mail To:help@itsvse.com