Indholdsfortegnelse:

Hvad forårsager databasedeadlocks?
Hvad forårsager databasedeadlocks?

Video: Hvad forårsager databasedeadlocks?

Video: Hvad forårsager databasedeadlocks?
Video: Sleep is your superpower | Matt Walker 2024, November
Anonim

EN dødvande sker, når to (eller flere) transaktioner blokerer hinanden ved at holde låse på ressourcer, som hver af transaktionerne også har brug for. For eksempel: Transaktion 1 holder en lås på tabel A. Det vil de fleste skrive dødvande kan ikke undgås i en flerbruger database.

Heraf, hvad er dødvande i databasen?

dødvande . I en database , a dødvande er en situation, hvor to eller flere transaktioner venter på, at hinanden opgiver låse. For eksempel kan transaktion A have en lås på nogle rækker i tabellen Konti og skal opdatere nogle rækker i tabellen Ordrer for at afslutte.

Ved du også, kan en udvalgt forårsage dødvande? 2 svar. dødvande sker, når en forespørgsel erhverver en lås på et objekt (rækker, datasider, omfang, tabeller osv.), og en anden ressource forsøger at få adgang til det. Den mindste enhed i SQL Server er datasider, og SQL holder en lås på siden, mens du arbejder på den. Så ja, det er muligt, at to Vælg udmelding kan skab dødvande.

Derudover, hvordan kan vi forhindre dødvande i databasen?

Tips til at undgå dødvande

  1. Sørg for, at databasedesignet er korrekt normaliseret.
  2. Udvikl applikationer til at få adgang til serverobjekter i samme rækkefølge hver gang.
  3. Tillad ikke brugerinput under transaktioner.
  4. Undgå markører.
  5. Hold transaktioner så korte som muligt.

Hvordan løser man et dødvande?

En smart udvikler skal udføre følgende trin for at komme sig efter et dødvande:

  1. Tjek for fejlnummer 1205, når der er en undtagelse.
  2. Sæt applikationen på pause kort for at give den anden forespørgsel tid til at fuldføre sin transaktion og frigive dens erhvervede låse.
  3. Genindsend forespørgslen, som blev rullet tilbage af SQL Server.

Anbefalede: