Artikkelen foreslår viktige tips for å unngå deadlocks i SQL Servers
Selv SQL Server har vært vitne til enorm utvikling de siste par årene, brukere står fortsatt jevnlig overfor situasjonen med vranglås. Ideelt sett bør en databaseserver kunne hente flere forespørsler, men det resulterer ofte i blokkeringer. Konfliktene der en prosess venter på utgivelsen av en annen ressurs kalles blokker. Og så er det deadlocks.
Se for deg en situasjon der en person ber den andre om å frigjøre en ressurs og den andre venter på at den første skal frigjøre. Som et resultat sitter begge fast i en fastlåst situasjon. Ingen av prosessen kan fortsette siden begge er låst og krever at den andre frigjør ressursen eller låsen.
Mens du jobber med SQL servers, vranglås er ganske vanlig, og de kan hemme hele prosessen. Det er ikke mulig å unngå vranglås helt, men man kan sikkert minimere sjansen for å skape en vranglås.
Dødlåstrøbbel

Det bør bemerkes at vranglåser direkte påvirker ytelsen og kan stoppe behandlingen av databasen.
1. Hold rekkefølgen den samme
Vranglåser vil uunngåelig oppstå hvis ressursene ikke behandles i en veldefinert rekkefølge. For å minimere vranglåser bør alle samtidige transaksjoner få tilgang til objekter i en veldefinert rekkefølge. DBA-er bør utforme et tydelig sett med regler for tilgang til databaseobjekter. Vanligvis utfører låseovervåkere vranglåssjekk, og når det oppdages, velger de ett vranglåsoffer og ruller transaksjonen tilbake. Dermed oppheves alle låser, og tidligere økter får fortsette prosessen. Vranglåsofre velges på grunnlag av vranglåsprioritet angitt av serveren eller tilbakerullingskostnad.
2. Begrensning under transaksjon
Du kan begrense brukerne til å legge inn alle slags data når transaksjonen behandles, og du kan oppdatere dataene før transaksjonen for å unngå vranglås. Prøv også å holde brukerinteraksjonen på minimumsnivåer fordi det påvirker hastigheten. Ideelt sett bør transaksjoner være korte og raske for å unngå låsninger. En applikasjon bør utformes på en måte som griper tak i låsene på minst nødvendig tid og frigjør dem så raskt som mulig.
3. NOLOCK Hint
Når noen kjører en spørring mot en tabell i SQL standard isolasjonsnivå, blir tabellen låst og neste spørringer må vente på utgivelsen. NOLOCK Hint er nyttig i slike situasjoner da det tillater overstyring av låsing av tabeller og andre spørringer får enkel tilgang.
4. Bruk bundne tilkoblinger
Hvis samme applikasjon kan åpne to eller flere tilkoblinger som kan samarbeide med hverandre, vil det ikke skape vranglåser. Det er derfor det anbefales å bruke bundne tilkoblinger.
Vålås er ikke det eneste bryet du sannsynligvis vil oppleve mens du jobber med en SQL Server database. Faktisk hendelser av sql korrupsjon er mer sannsynlig å forårsake sorg. For å unngå et datatap scenario, invester i et kraftig gjenopprettingsverktøy som DataNumen SQL Recovery.
Forfatterintroduksjon:
Victor Simon er en datagjenopprettingsekspert innen DataNumen, Inc., som er verdensledende innen datagjenopprettingsteknologier, inkludert mdb gjenoppretting og sql-programvareprodukter. For mer informasjon besøk https://www.datanumen.com/