Sobes.tech
Middle

Quali tipi di blocchi esistono in SQL?

sobes.tech AI

Risposta dell'AI

Tipi di blocchi in SQL:

  • Per livello:

    • Blocchi di tabella (Table Locks): Blocca l'intera tabella. Facile da implementare, ma può ridurre significativamente il parallelismo. Adatto per operazioni che modificano l'intera tabella (ad esempio, ALTER TABLE).
    • Blocchi di riga (Row Locks): Blocca singole righe. Offre alto parallelismo, ma richiede più risorse per la gestione. Utilizzato di default nella maggior parte dei DBMS per INSERT, UPDATE, DELETE.
  • Per tipo di accesso:

    • Blocco condiviso (Shared Lock - S Lock): Permette a più transazioni di leggere dati contemporaneamente, ma impedisce la scrittura da parte di altre.
    • Blocco esclusivo (Exclusive Lock - X Lock): Permette a una sola transazione di accedere ai dati (lettura e scrittura) e blocca le altre.
    • Blocco di intenzione (Intention Lock): Indica al DBMS che le transazioni prevedono di impostare un blocco a un livello inferiore (righe o tabelle). Per esempio, IS (Intention Shared), IX (Intention Exclusive). Aiuta il DBMS a verificare più rapidamente la compatibilità dei blocchi.
  • Altri tipi:

    • Blocco di intervallo (Range Lock): Blocca un intervallo di righe in un indice. Usato per prevenire letture fantasma.
    • Blocco di metadati (Metadata Lock): Blocca i metadati dell'oggetto (tabella, vista, ecc.). Usato durante operazioni DDL.

La compatibilità dei blocchi determina se più transazioni possono mantenere contemporaneamente certi tipi di blocchi su un oggetto.

Tipo di blocco S X IS IX
S No No
X No No No No
IS No
IX No No