Ett dödläge uppstår när 2 processer konkurrerar om exklusiv åtkomst till en resurs men inte kan få exklusiv tillgång till den eftersom den andra processen förhindrar det. … SQL Server upptäcker automatiskt när låsningar har inträffat och vidtar åtgärder genom att döda en av processerna som kallas offret.
Varför uppstår dödläge?
Två processer som konkurrerar om två resurser i motsatt ordning. … Den senare processen får vänta. Ett dödläge uppstår när den första processen låser den första resursen samtidigt som den andra processen låser den andra resursen. Deadlocket kan lösas genom att avbryta och starta om den första processen.
Hur kan vi undvika dödläge i SQL Server?
Användbara sätt att undvika och minimera låsningar i SQL Server
- Försök att hålla transaktioner korta; detta kommer att undvika att låsa en transaktion under en lång tidsperiod.
- Åtkomst till objekt på ett liknande logiskt sätt i flera transaktioner.
- Skapa ett täckande index för att minska risken för ett dödläge.
Vad är ett dödläge i SQL Server?
SQL Server-dödläge är i huvudsak ett avstånd mellan två processer som konkurrerar om exklusiv åtkomst till samma resurs. Eftersom endast en process kan använda en resurs åt gången, saktar prestandan ner tills dödläget är löst.
Hur fixar man ett dödläge?
Deadlock-frekvensen kan ibland minskas genom att se till att alla applikationer får åtkomst deras gemensamma data i samma ordning - vilket till exempel innebär att de kommer åt (och därför låser) rader i Tabell A, följt av Tabell B, följt av Tabell C, och så vidare.