Sobes.tech
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.
  • 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