Oracle
 sql >> Base de Dados >  >> RDS >> Oracle

O Oracle bloqueará toda a tabela enquanto executa uma instrução DML ou apenas a linha


Podemos emitir bloqueios explicitamente com o comando LOCK TABLE. Saiba mais

Caso contrário, uma inserção não bloqueia nenhuma outra linha. Por causa do modelo de isolamento de leitura do Oracle, essa linha só existe em nossa sessão até que a confirmemos, então ninguém mais pode fazer nada com ela. Saiba mais .

Uma instrução de atualização bloqueia apenas as linhas afetadas. A menos que tenhamos implementado uma estratégia de bloqueio pessimista com SELECT ... FOR UPDATE. Saiba mais .

Finalmente, no Oracle, os escritores não bloqueiam os leitores. Assim, mesmo as linhas bloqueadas podem ser lidas por outras sessões, elas simplesmente não podem ser alteradas. Saiba mais .

Esse comportamento é incorporado ao kernel do Oracle e não é configurável.

Justin faz uma boa observação sobre o bloqueio DDL em nível de tabela. Esse bloqueio fará com que uma sessão executando DDL na tabela espere até que a sessão DML seja confirmada, a menos que o DDL seja algo como CREATE INDEX, caso em que falhará imediatamente com ORA-00054.