Innehållsförteckning:

Vad orsakar låsningar i databasen?
Vad orsakar låsningar i databasen?

Video: Vad orsakar låsningar i databasen?

Video: Vad orsakar låsningar i databasen?
Video: Row-Level Database Locks Explained - (Read vs Exclusive) 2024, November
Anonim

A dödläge händer när två (eller flera) transaktioner blockerar varandra genom att låsa resurser som var och en av transaktionerna också behöver. Till exempel: Transaktion 1 har ett lås på tabell A. De flesta kommer att skriva det dödlägen kan inte undvikas i en multianvändare databas.

Härav, vad är dödlägen i databasen?

dödlägen . I en databas , a dödläge är en situation där två eller flera transaktioner väntar på att varandra ska ge upp lås. Till exempel kan transaktion A ha ett lås på vissa rader i tabellen Konton och behöver uppdatera några rader i tabellen Order för att avsluta.

Vet också, kan en utvald orsaka ett dödläge? 2 svar. Dödläge händer när en fråga får ett lås på ett objekt (rader, datasidor, omfattning, tabeller etc) och annan resurs försöker komma åt det. Minsta enhet i SQL Server är datasidor och SQL håller ett lås på sidan medan du arbetar med det. Så, ja det är möjligt att två Välj påstående burk skapa dödläge.

Dessutom, hur kan vi förhindra dödläge i databasen?

Tips för att undvika dödlägen

  1. Se till att databasdesignen är korrekt normaliserad.
  2. Utveckla applikationer för att komma åt serverobjekt i samma ordning varje gång.
  3. Tillåt inte användarinmatning under transaktioner.
  4. Undvik markörer.
  5. Håll transaktionerna så korta som möjligt.

Hur fixar man ett dödläge?

En smart utvecklare måste göra följande steg för att återhämta sig från ett dödläge:

  1. Kontrollera efter felnummer 1205, när ett undantag kastas.
  2. Pausa programmet kort för att ge den andra frågan tid att slutföra sin transaktion och släppa sina förvärvade lås.
  3. Skicka frågan på nytt, som rullades tillbaka av SQL Server.

Rekommenderad: