Sobes.tech
Middle

Kokie blokavimo tipai yra SQL?

sobes.tech AI

Atsakymas iš AI

SQL užblokavimo tipai:

  • Pagal lygį:

    • Lentelių užblokavimas (Table Locks): Užblokuoja visą lentelę. Paprasta įgyvendinti, bet gali žymiai sumažinti paralelizmą. Gerai tinka operacijoms, keičiančioms visą lentelę (pvz., ALTER TABLE).
    • Eilutės užblokavimas (Row Locks): Užblokuoja atskiras eilutes. Užtikrina aukštą paralelizmą, bet reikalauja daugiau išteklių valdymui. Dažniausiai naudojama daugelyje DB valdymo sistemų INSERT, UPDATE, DELETE operacijoms.
  • Prieigos tipas:

    • Dalijamasis užblokavimas (Shared Lock - S Lock): leidžia kelioms transakcijoms vienu metu skaityti duomenis, bet draudžia rašyti kitoms.
    • Ekskliuzinis užblokavimas (Exclusive Lock - X Lock): leidžia tik vienai transakcijai pasiekti duomenis (ir skaityti, ir rašyti) ir draudžia kitoms.
    • Intencijos užblokavimas (Intention Lock): naudojamas nurodyti DB, kad transakcijos planuoja įdiegti užblokavimą žemesniame lygyje (eilutėse ar lentelėje). Pvz., IS (Intention Shared), IX (Intention Exclusive). Tai padeda DB greičiau patikrinti užblokavimų suderinamumą.
  • Kiti tipai:

    • Diapazono užblokavimas (Range Lock): užblokuoja eilutės diapazoną indekse. Naudojama siekiant išvengti fantominio skaitymo.
    • Metaduomenų užblokavimas (Metadata Lock): užblokuoja objekto metaduomenis (lenteles, vaizdus ir kt.). Naudojama DDL operacijų metu.

Užblokavimų suderinamumas nustato, ar keli transakcijos gali vienu metu palaikyti tam tikrus užblokavimų tipus viename objekte.