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