Oracle
 sql >> база данни >  >> RDS >> Oracle

Oracle ще заключи ли цялата таблица, докато изпълнява DML израз или само реда

Можем да издадем ключалки изрично с командата LOCK TABLE. Научете повече

В противен случай вмъкването не заключва никакви други редове. Поради модела за изолиране на четене на Oracle този ред съществува само в нашата сесия, докато не го ангажираме, така че никой друг не може да направи нищо с него. Научете повече .

Изявление за актуализиране заключва само засегнатите редове. Освен ако не сме приложили песимистична стратегия за заключване с SELECT ... FOR UPDATE. Научете повече .

И накрая, в Oracle писателите не блокират читателите. Така че дори заключените редове могат да бъдат прочетени от други сесии, те просто не могат да бъдат променени. Научете повече .

Това поведение е записано в ядрото на Oracle и не може да се конфигурира.

Джъстин прави добра точка за DDL заключването на ниво таблица. Това заключване ще накара сесия, изпълняваща DDL на масата, да изчака, докато DML сесията се ангажира, освен ако DDL не е нещо като CREATE INDEX, в който случай ще се провали незабавно с ORA-00054.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Oracle SQL - Преобразуване на стойности на колони на N реда в N колони в 1 ред

  2. Изберете последния ред за всяка група от oracle

  3. Защо CONNECT BY LEVEL в таблица връща допълнителни редове?

  4. Как да напиша SQL израз с кавички?

  5. Oracle to_date функция. Необходима е маска