Hva er Låser i SQL?

Hva er Låser i SQL?


I en relasjonsdatabase management system (RDBMS) som en SQL-basert database, er "låser" brukes til å stoppe brukere fra å endre de samme dataene samtidig. Hvis et bestemt sett med data er låst, kan den ikke bli manipulert av en annen bruker inntil den opprinnelige brukeren tar av låsen. Andre restriksjoner kan brukes, for eksempel hindre andre brukere fra å lese dataene før de er låst opp, og det finnes unntak fra denne generelle låse regelen. Det er seks typer låser i SQL.

Delte Låser (S)

En delt låse inneholder data for en enkelt bruker for å lese. Andre brukere kan ikke endre data som holdes under en felles lås, men de er i stand til å lese dataene. Når dataene er lest, er låsen generelt tilbakelevert, med noen unntak som for eksempel dersom transaksjonen kjøres ved hjelp av READCOMMITTED eller READCOMMITTEDLOCK låse isolasjonsnivå. Delt låser brukes i leseoperasjonene bare, og kan ikke brukes til å endre dataene.

Eksklusive Låser (X)

En eksklusiv lås brukes til å forhindre en del av data som blir modifisert av en transaksjon mot å bli endret av en annen transaksjon. Som standard kan dataene under en eksklusiv lås ikke leses av andre enn garderoben, men denne innstillingen kan endres ved hjelp av NOLOCK hint eller et READUNCOMMITTED isolasjonsnivå. Denne type lås ville bli brukt med operasjoner som INSERT, UPDATE og DELETE.

Oppdater Låser (U)

En oppdatering låsen sitter i midten bakken mellom en delt lås og en eksklusiv lås. Hvis noen data har en eksklusiv lås på den, kan ingen andre lås plasseres på den. En oppdatering lås kan plasseres på en lås som allerede har en delt lås på den; og når det gjelder tid til å lage oppdateringer til data, oppdatering lock endres til en eksklusiv lås. Bare en oppdatering lås kan plasseres på en ressurs til enhver tid.

Intent Låser (I)

En intensjon om lock gjør at en transaksjon for å varsle en annen transaksjon av sin hensikt å låse data - ". Intent lock" derav navnet De jobber hindre transaksjoner låser ytterligere transaksjoner fra å låse en høyere del av databasen. For eksempel å plassere en intensjonsavtale lås på bordet hindrer en annen transaksjon fra å plassere en eksklusiv lås på bordet, noe som ville avbryte en lås på en nedre del som en rad eller en side.

Schema Låser (SCH) og Bulk Oppdater Låser (BU)

Skjema låser benyttes sammen med en operasjon som krever skjemaet for tabellen er i gang. Det finnes to typer - et skjema stabilitet lock (SCH-S), som ikke blokkerer tilgang til objektdata, og et skjema modifikasjon lås, som gjør blokkere tilgangen til objektdata. En Bulk oppdatering lås, som navnet tilsier, blir brukt av bulkoperasjoner som bulk-kopiere data, og når TABLOCK hint er angitt.