Talaan ng mga Nilalaman:

Ano ang nagiging sanhi ng mga deadlock ng database?
Ano ang nagiging sanhi ng mga deadlock ng database?

Video: Ano ang nagiging sanhi ng mga deadlock ng database?

Video: Ano ang nagiging sanhi ng mga deadlock ng database?
Video: Mga dapat gawin sa bahay kapag nakaranas ng STROKE | Doc Knows Best 2024, Nobyembre
Anonim

A deadlock nangyayari kapag hinaharangan ng dalawa (o higit pang) transaksyon ang isa't isa sa pamamagitan ng paghawak ng mga kandado sa mga mapagkukunan na kailangan din ng bawat isa sa mga transaksyon. Halimbawa: Ang Transaksyon 1 ay may hawak na lock sa Talahanayan A. Isusulat iyon ng karamihan sa mga tao mga deadlock hindi maiiwasan sa isang multi-user database.

Dito, ano ang deadlocks sa database?

Mga deadlock . Sa isang database , a deadlock ay isang sitwasyon kung saan ang dalawa o higit pang mga transaksyon ay naghihintay para sa isa't isa na magbigay ng mga kandado. Halimbawa, ang Transaksyon A ay maaaring magkaroon ng lock sa ilang row sa Accounts table at kailangang i-update ang ilang row sa Orders table para matapos.

Alamin din, maaari bang maging sanhi ng deadlock ang isang pili? 2 Sagot. Deadlock nangyayari kapag ang isang query ay nakakuha ng isang lock sa isang bagay (mga hilera, mga pahina ng data, lawak, mga talahanayan atbp) at sinubukan ng iba pang mapagkukunan na i-access ito. Ang pinakamaliit na yunit sa SQL Server ay mga pahina ng data at ang SQL ay may hawak na lock sa pahina habang ginagawa ito. Kaya, oo posible na dalawa pumili pahayag pwede lumikha deadlock.

Bukod pa rito, paano natin mapipigilan ang deadlock sa database?

Mga tip sa pag-iwas sa deadlock

  1. Tiyakin na ang disenyo ng database ay maayos na na-normalize.
  2. Bumuo ng mga application upang ma-access ang mga bagay ng server sa parehong pagkakasunud-sunod sa bawat oras.
  3. Huwag payagan ang anumang input ng user sa panahon ng mga transaksyon.
  4. Iwasan ang mga cursor.
  5. Panatilihing maikli ang mga transaksyon hangga't maaari.

Paano mo ayusin ang isang deadlock?

Dapat gawin ng isang matalinong developer ang mga sumusunod na hakbang upang makabawi mula sa isang deadlock:

  1. Suriin ang numero ng error 1205, kapag may itinapon na exception.
  2. I-pause saglit ang application upang bigyan ang ibang query ng oras upang makumpleto ang transaksyon nito at ilabas ang mga nakuha nitong lock.
  3. Muling isumite ang query, na ibinalik ng SQL Server.

Inirerekumendang: