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.
- 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
-
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 |