Middle
Koje vrste blokada postoje u SQL-u?
sobes.tech АИ
Одговор од АИ
Vrste blokada u SQL:
-
Po nivou:
- Blokade tabela (Table Locks): Blokira celu tabelu. Lako za implementaciju, ali može značajno smanjiti paralelizam. Pogodno za operacije koje menjaju celu tabelu (npr.
ALTER TABLE). - Blokade reda (Row Locks): Blokira pojedinačne redove. Obezbeđuje visok paralelizam, ali zahteva više resursa za upravljanje. Podrazumevano u većini DBMS za
INSERT,UPDATE,DELETE.
- Blokade tabela (Table Locks): Blokira celu tabelu. Lako za implementaciju, ali može značajno smanjiti paralelizam. Pogodno za operacije koje menjaju celu tabelu (npr.
-
Po tipu pristupa:
- Zajednička blokada (Shared Lock - S Lock): Dozvoljava više transakcija da istovremeno čitaju podatke, ali onemogućava pisanje od strane drugih.
- Ekskluzivna blokada (Exclusive Lock - X Lock): Dozvoljava samo jednoj transakciji pristup podacima (čitanje i pisanje) i blokira ostale.
- Zamka namere (Intention Lock): Ukazuje DBMS-u da transakcije planiraju da postave blokadu na nižem nivou (redovi ili tabele). Na primer,
IS(Intention Shared),IX(Intention Exclusive). Pomaže DBMS-u da brže proveri kompatibilnost blokada.
-
Druge vrste:
- Opseg blokade (Range Lock): Blokira opseg redova u indeksu. Koristi se za sprečavanje fantomskog čitanja.
- Metapodatkovna blokada (Metadata Lock): Blokira metapodatke objekta (tabela, prikaz itd.). Koristi se pri izvršavanju DDL operacija.
Kompatibilnost blokada određuje da li više transakcija može istovremeno održavati određene tipove blokada na istom objektu.
| Tip blokade | S | X | IS | IX |
|---|---|---|---|---|
| S | Da | Ne | Da | Ne |
| X | Ne | Ne | Ne | Ne |
| IS | Da | Ne | Da | Da |
| IX | Ne | Ne | Da | Da |