Sobes.tech
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, DELETE műveleteknél.
  • 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