Denna artikel är en spegelartikel om maskinöversättning, klicka här för att hoppa till originalartikeln.

Utsikt: 8936|Svar: 0

SQL-lås NOLOCK, HOLDLOCK, UPDLOCK, TABLOCK, TABLOCKX

[Kopiera länk]
Publicerad på 2016-07-20 14:02:51 | | |

NOLOCK
När detta alternativ är valt läser eller ändrar SQL Server data utan några lås. I detta fall kan användaren läsa data från en obunden transaktion eller Roll Back, känd som "smutsig data".

HOLDLOCK
När detta alternativ är valt behåller SQL Server detta delade lås tills hela transaktionen är slut utan att släppa det på vägen.

UPDLOCK
När detta alternativ är valt använder SQL Server ett modifieringslås istället för ett delat lås när data läses och behåller detta lås tills hela transaktionen eller kommandot är slut. Detta alternativ säkerställer att flera processer kan läsa data samtidigt, men endast den processen kan ändra datan.

TABLOCK
När detta alternativ är valt placerar SQL Server ett delat lås på hela tabellen tills kommandot avslutas. Detta alternativ säkerställer att andra processer endast kan läsa och inte ändra data.

PAGLOCK
Detta alternativ är standardvalet, och när det är valt använder SQL Server ett delat sidlås.

TABLOCKX (Exklusivt bordslås)
När detta alternativ är valt kommer SQL Server att låsa hela tabellen tills kommandot eller transaktionen avslutas. Detta förhindrar att andra processer läser eller ändrar datan i tabellen.

HOLDLOCK håller det delade låset tills hela transaktionen är slutförd och bör släppas så snart det låsta objektet inte längre behövs, motsvarande nivån för SERIALIZABLE transaktionsisolering

NOLOCK-satsen exekveras utan att utfärda ett delat lås, vilket tillåter dirty reads, vilket motsvarar nivån för READ UNCOMMITTED transaktionsisolering

PAGLOCK använder flera sidlås där ett tabelllås används

READPAST låter SQL-servern hoppa över låsta rader och utföra transaktioner, och för READ UNCOMMITTED transaktionsisoleringsnivåer hoppar man bara över RID-lås, inte sid-, zon- och tabelllås

ROWLOCK upprätthåller användningen av rowlocks

TABLOCKX upprätthåller användningen av ett exklusivt tabellnivålås, vilket förhindrar att andra transaktioner använder tabellen under transaktionen

UPLOCK tvingar användning av uppdateringar när man läser en tabell utan delat lås

Obs: Skillnaden mellan att låsa en tabell i en databas
VÄLJ * FRÅN tabell MED (HOLDLOCK) Andra transaktioner kan läsa tabellen, men kan inte uppdatera eller ta bort
VÄLJ * FRÅN tabell MED (TABLOCKX) Andra transaktioner kan inte läsa, uppdatera och ta bort tabeller




Föregående:Lås, smutsiga läsningar, oupprepbara läsningar och falska läsningar i SQL
Nästa:SQL Server tittar på deadlocken och släpper deadlocken
Friskrivning:
All programvara, programmeringsmaterial eller artiklar som publiceras av Code Farmer Network är endast för lärande- och forskningsändamål; Ovanstående innehåll får inte användas för kommersiella eller olagliga ändamål, annars kommer användarna att bära alla konsekvenser. Informationen på denna sida kommer från internet, och upphovsrättstvister har inget med denna sida att göra. Du måste helt radera ovanstående innehåll från din dator inom 24 timmar efter nedladdning. Om du gillar programmet, vänligen stöd äkta programvara, köp registrering och få bättre äkta tjänster. Om det finns något intrång, vänligen kontakta oss via e-post.

Mail To:help@itsvse.com