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,DELETEoperatsioonide puhul.
- 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
-
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.