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.
- 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,
-
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 | Sì | No | Sì | No |
| X | No | No | No | No |
| IS | Sì | No | Sì | Sì |
| IX | No | No | Sì | Sì |