sql >> Databasteknik >  >> RDS >> Oracle

Kommer Oracle att låsa hela tabellen medan du utför en DML-sats eller bara raden

Vi kan utfärda lås explicit med kommandot LOCK TABLE. Läs mer

Annars låser inte en infogning några andra rader. På grund av Oracles läsisoleringsmodell finns den raden bara i vår session tills vi begår den, så ingen annan kan göra något med den. Läs mer .

En uppdateringssats låser bara de berörda raderna. Såvida vi inte har implementerat en pessimistisk låsstrategi med SELECT ... FÖR UPPDATERING. Läs mer .

Slutligen, i Oracle-författare blockerar inte läsare. Så även låsta rader kan läsas av andra sessioner, de kan bara inte ändras. Läs mer .

Detta beteende är inbakat i Oracle-kärnan och är inte konfigurerbart.

Justin gör en bra poäng om DDL-låset på bordsnivå. Det låset gör att en session som exekverar DDL på bordet väntar tills DML-sessionen commits, om inte DDL är något i stil med CREATE INDEX i vilket fall den kommer att misslyckas omedelbart med ORA-00054.



  1. Kompilerar tillägget pg_repack i binärt format för PostgreSQL-installationen

  2. Uppdatera ResultSets med SQL Array-typer i JDBC / PostgreSQL

  3. Hur inaktiverar man anslutningspoolen?

  4. HTML - Ändra\Uppdatera sidans innehåll utan att uppdatera\ladda om sidan