Sobes.tech
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, DELETE operācijām.
  • 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
X
IS
IX