Sobes.tech
Middle

Aké druhy blokovaní existujú v SQL?

sobes.tech AI

Odpoveď od AI

Typy zámkov v SQL:

  • Podľa úrovne:

    • Zámky tabuliek (Table Locks): Zámkuje celú tabuľu. Jednoduché na implementáciu, ale môže výrazne znížiť paralelizmus. Vhodné pre operácie, ktoré menia celú tabuľu (napríklad ALTER TABLE).
    • Zámky riadkov (Row Locks): Zámkuje jednotlivé riadky. Poskytuje vysoký paralelizmus, ale vyžaduje viac zdrojov na správu. Predvolene v väčšine DBMS pre INSERT, UPDATE, DELETE.
  • Podľa typu prístupu:

    • Zdieľaný zámok (Shared Lock - S Lock): Umožňuje viacerým transakciám čítať údaje súčasne, ale zakazuje zápis iným.
    • Exkluzívny zámok (Exclusive Lock - X Lock): Umožňuje iba jednej transakcii pristupovať k údajom (čítanie a zápis) a blokuje ostatné.
    • Zámok zámeru (Intention Lock): Signalizuje DBMS, že transakcie plánujú nastaviť zámok na nižšej úrovni (riadky alebo tabuľky). Napríklad, IS (Intention Shared), IX (Intention Exclusive). Pomáha DBMS rýchlejšie overiť kompatibilitu zámkov.
  • Iné typy:

    • Rozsahový zámok (Range Lock): Zámkuje rozsah riadkov v indexe. Používa sa na prevenciu fantómového čítania.
    • Metadátový zámok (Metadata Lock): Zámkuje metadáta objektu (tabuľka, pohľad atď.). Používa sa pri vykonávaní DDL operácií.

Kompatibilita zámkov určuje, či môžu viac transakcií udržiavať súčasne určité typy zámkov na tom istom objekte.

Typ zámku S X IS IX
S Áno Nie Áno Nie
X Nie Nie Nie Nie
IS Áno Nie Áno Áno
IX Nie Nie Áno Áno