Middle
Milyen típusú zárolások léteznek az SQL-ben?
sobes.tech MI
Válasz az MI-től
SQL-ben a zárolások típusai:
-
Szintek szerint:
- Táblazárak (Table Locks): Az egész táblát zárolja. Egyszerű a megvalósítás, de jelentősen csökkentheti a párhuzamosságot. Olyan műveletekhez alkalmas, amelyek az egész táblát módosítják (pl.
ALTER TABLE). - Sor zárolások (Row Locks): Egyedi sorokat zárol. Magas párhuzamosságot biztosít, de több erőforrást igényel a kezeléshez. Alapértelmezés szerint a legtöbb DBMS
INSERT,UPDATE,DELETEműveleteknél.
- Táblazárak (Table Locks): Az egész táblát zárolja. Egyszerű a megvalósítás, de jelentősen csökkentheti a párhuzamosságot. Olyan műveletekhez alkalmas, amelyek az egész táblát módosítják (pl.
-
Hozzáférés típusa szerint:
- Megosztott zárolás (Shared Lock - S Lock): Több tranzakció olvashatja az adatokat egy időben, de írni más tranzakciók nem írhatnak.
- Kizáró zárolás (Exclusive Lock - X Lock): Csak egy tranzakció férhet hozzá az adatokhoz (olvasás és írás), és másokat blokkol.
- Szándék zárolás (Intention Lock): Azt jelzi a DBMS-nek, hogy a tranzakciók szándékoznak zárolást tenni alacsonyabb szinten (sorok vagy táblák). Például,
IS(Intention Shared),IX(Intention Exclusive). Segít a DBMS-nek gyorsabban ellenőrizni a zárolások kompatibilitását.
-
Egyéb típusok:
- Intervallum zárolás (Range Lock): Egy indexben lévő sorok tartományát zárolja. A fantom olvasás megelőzése érdekében használják.
- Metaadat zárolás (Metadata Lock): Az objektum metaadatait (tábla, nézet stb.) zárolja. DDL műveletek során használják.
A zárolások kompatibilitása meghatározza, hogy több tranzakció egyidejűleg tarthat-e bizonyos zárolási típusokat ugyanazon az objektumon.
| Zárolási típus | S | X | IS | IX |
|---|---|---|---|---|
| S | Igen | Nem | Igen | Nem |
| X | Nem | Nem | Nem | Nem |
| IS | Igen | Nem | Igen | Igen |
| IX | Nem | Nem | Igen | Igen |