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

Vil Oracle låse hele tabellen, mens du udfører en DML-sætning eller kun rækken

Vi kan udstede låse eksplicit med kommandoen LOCK TABLE. Få mere at vide

Ellers låser en indsats ikke andre rækker. På grund af Oracles læseisoleringsmodel eksisterer den række kun i vores session, indtil vi begår den, så ingen andre kan gøre noget med den. Få mere at vide .

En opdateringserklæring låser kun de berørte rækker. Medmindre vi har implementeret en pessimistisk låsestrategi med SELECT ... FOR UPDATE. Få mere at vide .

Endelig blokerer forfattere i Oracle ikke læsere. Så selv låste rækker kan læses af andre sessioner, de kan bare ikke ændres. Få mere at vide .

Denne adfærd er indbygget i Oracle-kernen og kan ikke konfigureres.

Justin gør en god pointe om DDL-låsen på bordniveau. Denne lås vil få en session, der udfører DDL på bordet, til at vente, indtil DML-sessionen commiterer, medmindre DDL'en er noget i retning af CREATE INDEX, i hvilket tilfælde den fejler med det samme med ORA-00054.



  1. Hvorfor lang datatype er blevet erstattet af LOB i Oracle?

  2. refererer fremmednøgle altid til en unik nøgle i en anden tabel?

  3. Hvad er MELLEM logisk operatør i SQL Server - SQL Server / TSQL Tutorial Del 124

  4. indsæt et array i tabellen ved hjælp af for loop