Turinys:

Kas sukelia duomenų bazės aklavietes?
Kas sukelia duomenų bazės aklavietes?

Video: Kas sukelia duomenų bazės aklavietes?

Video: Kas sukelia duomenų bazės aklavietes?
Video: What Are Database Deadlocks 2024, Lapkritis
Anonim

A aklavietė atsitinka, kai dvi (ar daugiau) operacijos blokuoja viena kitą, užblokuodamos išteklius, kurių taip pat reikia kiekvienai operacijai. Pavyzdžiui: 1 operacija užblokuoja A lentelę. Daugelis žmonių tai rašys aklavietės negalima išvengti kelių vartotojų duomenų bazėje.

Taigi, kas yra aklavietės duomenų bazėje?

Aklavietės . A duomenų bazėje , a aklavietė yra situacija, kai du ar daugiau sandorių laukia, kol vienas kitas atsisakys spynų. Pavyzdžiui, operacija A gali būti užblokuota kai kuriose lentelės „Sąskaitos“eilutėse ir, norint baigti, reikia atnaujinti kai kurias lentelės „Užsakymai“eilutes.

Taip pat žinote, ar pasirinkimas gali sukelti aklavietę? 2 atsakymai. Aklavietė įvyksta, kai viena užklausa užblokuoja objektą (eilutes, duomenų puslapius, apimtį, lenteles ir tt), o kitas išteklius bando jį pasiekti. Mažiausias SQL serverio vienetas yra duomenų puslapiai, o SQL užrakina puslapį, kol su juo dirbama. Taigi, taip, gali būti, kad du pasirinkite pareiškimas gali sukurti aklavietė.

Be to, kaip galime išvengti duomenų bazės aklavietės?

Patarimai, kaip išvengti aklavietės

  1. Įsitikinkite, kad duomenų bazės dizainas yra tinkamai normalizuotas.
  2. Kurkite programas, kad kiekvieną kartą pasiektumėte serverio objektus ta pačia tvarka.
  3. Neleiskite vartotojui įvesties atliekant operacijas.
  4. Venkite žymeklių.
  5. Sudarykite sandorius kuo trumpiau.

Kaip ištaisyti aklavietę?

Išmanusis kūrėjas turi atlikti šiuos veiksmus, kad atsigautų iš aklavietės:

  1. Patikrinkite, ar nėra klaidos 1205, kai pateikiama išimtis.
  2. Trumpam pristabdykite programą, kad kitai užklausai būtų suteikta laiko užbaigti operaciją ir atleisti įgytus užraktus.
  3. Iš naujo pateikite užklausą, kurią atšaukė SQL serveris.

Rekomenduojamas: