Sobes.tech
Middle

Millised blokeerimise tüübid on SQL-is olemas?

sobes.tech AI

Vastus AI-lt

SQL-i blokeerimise tüübid:

  • Tasemel:

    • Tabeli blokeerimine (Table Locks): Blokeerib kogu tabeli. Lihtne rakendada, kuid võib oluliselt vähendada paralleelsust. Sobib hästi operatsioonidele, mis muudavad kogu tabelit (näiteks ALTER TABLE).
    • Rea blokeerimine (Row Locks): Blokeerib üksikud read. Tagab kõrge paralleelsuse, kuid nõuab rohkem ressursse haldamiseks. Kasutatakse enamikus DBMS-ides INSERT, UPDATE, DELETE operatsioonide puhul.
  • Juurdepääsu tüüp:

    • Jagatud blokeerimine (Shared Lock - S Lock): võimaldab mitmel transaktsioonil samaaegselt andmeid lugeda, kuid keelab kirjutamise teistele.
    • Eksklusiivne blokeerimine (Exclusive Lock - X Lock): võimaldab ainult ühel transaktsioonil andmetele ligi pääseda (lugeda ja kirjutada) ning keelab teistele ligipääsu.
    • Intentsiooni blokeerimine (Intention Lock): kasutatakse DBMS-is selleks, et näidata, et transaktsioonid plaanivad kehtestada blokeeringu madalamal tasemel (ridadel või tabelil). Näiteks, IS (Intention Shared), IX (Intention Exclusive). See aitab DB-l kiiremini kontrollida blokeeringute ühilduvust.
  • Muud tüübid:

    • Diapazoni blokeerimine (Range Lock): blokeerib indeksis rea vahemiku. Kasutatakse fantoomlugemise vältimiseks.
    • Metadatas blokeerimine (Metadata Lock): blokeerib objekti metadatasid (tabelid, vaated jne). Kasutatakse DDL-operatsioonide ajal.

Blokeeringute ühilduvus määrab, kas mitu transaktsiooni saavad samaaegselt hoida teatud tüüpi blokeeringuid ühel objektil.