Oracle
 sql >> Database >  >> RDS >> Oracle

Oracle bloccherà l'intera tabella durante l'esecuzione di un'istruzione DML o solo la riga

Possiamo emettere blocchi in modo esplicito con il comando LOCK TABLE. Scopri di più

In caso contrario, un inserto non blocca le altre righe. A causa del modello di isolamento della lettura di Oracle, quella riga esiste solo nella nostra sessione fino a quando non viene eseguita il commit, quindi nessun altro può farci nulla. Scopri di più .

Un'istruzione di aggiornamento blocca solo le righe interessate. A meno che non abbiamo implementato una strategia di blocco pessimistica con SELECT ... FOR UPDATE. Scopri di più .

Infine, in Oracle gli scrittori non bloccano i lettori. Quindi anche le righe bloccate possono essere lette da altre sessioni, semplicemente non possono essere modificate. Scopri di più .

Questo comportamento è integrato nel kernel Oracle e non è configurabile.

Justin fa un buon punto sul blocco DDL a livello di tabella. Tale blocco farà sì che una sessione che esegue DDL sulla tabella attenda fino al commit della sessione DML, a meno che il DDL non sia qualcosa come CREATE INDEX, nel qual caso fallirà immediatamente con ORA-00054.