moduri de blocare

moduri de blocare a determina diferite tipuri de încuietori. Alegerea unui mod de blocare pentru a fi aplicată depinde de resursa pe care doriți să le blocați. Următoarele trei tipuri de încuietori sunt folosite pentru a bloca la nivel de rând și la nivel de pagină:

♦ partajat (partajat, S);

♦ excepționale (exclusiv, E);

♦ actualizare (update, XJ).

Blocarea exclusivă rezervă o pagină sau un șir de caractere pentru a fi utilizate exclusiv într-o singură tranzacție. Acesta este utilizat pentru operatorii DML (insera, actualiza sau șterge), care modifică resursa. Blocarea exclusivă nu poate fi setat în cazul în care un alt proces păstrează un sistem de blocare în comun sau exclusiv pe această resursă, adică. E. Doar o singură blocare exclusivă poate exista pentru resursa. Odată ajuns pe pagina (sau rând) este setat de blocare exclusivă, nici o altă blocare nu poate fi instalat pe aceeași resursă.

Blocarea la nivel de pagină permite, de asemenea, blocarea țintă, care este descris mai târziu în această secțiune.

Blocarea actualizare poate fi setat numai în cazul în care nu există nici alte încuietori actualizare sau încuietori exclusive. În acest caz, acesta poate fi instalat pe site-urile care au deja un sistem de blocare partajată. În acest caz, dispozitivul de blocare actualizare obține și un alt blocare partajat pe același obiect. În cazul în care tranzacția care modifică obiectul este confirmat, actualizează blocarea este înlocuită cu o blocare exclusivă, în cazul în care obiectul nu există alte încuietori.

Blocarea actualizare previne anumite tipuri comune de impasuri. (Deadlocks sunt descrise mai târziu în această secțiune.)

Tabel. 13.1 prezintă matricea de compatibilitate de blocare partajate și exclusive și de upgrade de blocare. Această matrice este interpretat după cum urmează: să presupunem că o tranzacție T \ un sistem de blocare așa cum se arată în prima coloană a matricei; De asemenea, presupunem că o altă tranzacție 7? Acesta solicită un sistem de blocare așa cum este specificat în antetul coloanei corespunzătoare. În acest caz, „Da“ înseamnă că dispozitivul de blocare pentru antiTg, în timp ce „Nu“ indică un conflict cu o blocare existentă.

Tabelul 13.1. Matricea de compatibilitate comună și de blocare exclusivă și actualizări de blocare

Baza de date Motor sprijină, de asemenea, alte forme de blocare, cum ar fi un zăvor de blocare și de centralizare.

Există cinci tipuri diferite de încuietori la nivel de masă:

♦ partajat (partajat, S);

♦ exclusive (exclusiv, X);

♦ blocare partajat cu un plan (intenție partajată, IS);

♦ blocare exclusiv cu un plan (intenție exclusiv, IX);

♦ partajat de blocare cu intenția de acces exclusiv (partajat cu intenție exclusiv, șase).

Comună și încuietori exclusive cu privire la nivelul corespunzător de blocare-line (sau pagină) cu același nume. Ca o regulă, de blocare cu intenția de a arăta intenția de a stabili un sistem de blocare pe o resursă un nivel inferior în ierarhia obiectelor bazei de date. Prin urmare, blocarea mersului plasat în ierarhia la un nivel deasupra obiectului pe care acest proces este destinat să blocheze. Aceasta este o modalitate eficientă de a afla dacă o astfel de blocare este posibil, interzice și alte procese pentru a bloca un nivel mai ridicat, înainte de blocare necesară este atinsă.

Tabel. 13.2 prezintă o serie de compatibilitate a tuturor tipurilor de încuietori de masă. Interpretarea acestei matrice corespunde exact interpretarea matricei în tabelul. 13.1.

Tabelul 13.2. Compatibilitate Matrix toate tipurile de încuietori de masă