Een deadlock treedt op wanneer 2 processen strijden om exclusieve toegang tot een bron, maar niet in staat zijn om exclusieve toegang ertoe te krijgen omdat het andere proces dit verhindert. … SQL Server detecteert automatisch wanneer er een impasse is opgetreden en onderneemt actie door een van de processen die bekend staan als het slachtoffer te beëindigen.
Waarom ontstaat er een impasse?
Twee processen die in tegengestelde volgorde strijden om twee bronnen. … Het latere proces moet wachten. Een deadlock treedt op wanneer het eerste proces de eerste resource vergrendelt op hetzelfde moment dat het tweede proces de tweede resource vergrendelt De deadlock kan worden opgelost door het eerste proces te annuleren en opnieuw te starten.
Hoe kunnen we een impasse in SQL Server voorkomen?
Handige manieren om SQL Server-impasses te vermijden en te minimaliseren
- Probeer transacties kort te houden; dit voorkomt dat een transactie voor een lange periode wordt vastgehouden.
- Toegang tot objecten op een vergelijkbare logische manier in meerdere transacties.
- Maak een dekkingsindex om de kans op een impasse te verkleinen.
Wat is een impasse in SQL Server?
SQL Server-deadlock is in wezen een impasse tussen twee processen die strijden om exclusieve toegang tot dezelfde bron. Omdat slechts één proces een resource tegelijk kan gebruiken, vertragen de prestaties totdat de impasse is opgelost.
Hoe los je een impasse op?
Deadlock-frequentie kan soms worden verminderd door ervoor te zorgen dat alle toepassingen toegang hebben tot hun gemeenschappelijke gegevens in dezelfde volgorde, wat bijvoorbeeld betekent dat ze toegang krijgen tot (en dus vergrendelen) rijen in Tabel A, gevolgd door Tabel B, gevolgd door Tabel C, enzovoort.