Middle
Kādi bloķēšanas veidi pastāv SQL?
sobes.tech AI
Atbilde no AI
SQL bloķēšanas veidi:
-
Pa līmeni:
- Tabulu bloķēšana (Table Locks): Bloķē visu tabulu. Vienkārši īstenojama, bet var būtiski samazināt paralēlismu. Labi piemērots operācijām, kas maina visu tabulu (piemēram,
ALTER TABLE). - Rindu bloķēšana (Row Locks): Bloķē atsevišķas rindas. Nodrošina augstu paralēlismu, bet prasa vairāk resursu pārvaldībai. Parasti tiek izmantota lielākajā daļā DBMS
INSERT,UPDATE,DELETEoperācijām.
- Tabulu bloķēšana (Table Locks): Bloķē visu tabulu. Vienkārši īstenojama, bet var būtiski samazināt paralēlismu. Labi piemērots operācijām, kas maina visu tabulu (piemēram,
-
Piekļuves veids:
- Kopīga bloķēšana (Shared Lock - S Lock): ļauj vairākām transakcijām vienlaikus lasīt datus, bet aizliedz rakstīt citām.
- Ekskluzīva bloķēšana (Exclusive Lock - X Lock): ļauj tikai vienai transakcijai piekļūt datiem (lasīt un rakstīt) un aizliedz citām.
- Nākotnes bloķēšana (Intention Lock): tiek izmantota, lai norādītu DB, ka transakcijas plāno uzstādīt bloķējumu zemākā līmenī (rindās vai tabulā). Piemēram,
IS(Nākotnes kopīga),IX(Nākotnes ekskluzīva). Tas palīdz DB ātrāk pārbaudīt bloķējumu saderību.
-
Citi veidi:
- Diapazona bloķēšana (Range Lock): bloķē indeksā rindas diapazonu. Tiek izmantota, lai novērstu fantomlasīšanu.
- Metadatu bloķēšana (Metadata Lock): bloķē objekta metadatus (tabulas, skatus utt.). Tiek izmantota DDL operācijās.
Bloķējumu saderība nosaka, vai vairākas transakcijas var vienlaikus uzturēt noteiktus bloķējumu tipus vienā objektā.
| Bloķēšanas veids | S | X | IS | IX |
|---|---|---|---|---|
| S | Jā | Nē | Jā | Nē |
| X | Nē | Nē | Nē | Nē |
| IS | Jā | Nē | Jā | Jā |
| IX | Nē | Nē | Jā | Jā |