Pessoal,
 

 Deparei-me com a seguinte situação em uma base de dados Oracle 10.2.0.1 
(Standard Edition) / Sistema Operacional: Windows Server 2008 R2

 

 A aplicação do ERP utiliza as seguintes tabelas abaixo:
 - PEDIDO
 - NOTA_FISCAL (filha da Pedido / Relação 1..N)
- NOTA_FISCAL_MERC (filha da Nota Fiscal / Relação 1.. N)

Ao analisar as views V_$Lock, V_$Locked_Object, dba_objects e V$Session, pude 
observar que uma determinada rotina do ERP, mantém a tabela NOTA_FISCAL_MERC em 
Lock do tipo Row Exclusive por alguns minutos (até que o usuário feche a janela 
do sistema - parece que o botão SALVAR não realizada o commit). Porém, nessa 
situação e momento, as tabelas NOTA_FISCAL e PEDIDO também apresentam Lock, 
porém ambas do tipo Row Share.

Minha dúvida é referente as tabelas que estão com Row Share e sua performance 
quando outras sessões estiverem acessando elas:
 

 Se uma outra sessão, executar uma consulta envolvendo as tabelas que estão com 
Row Share, pode acontecer da performance de execução do SQL ser afetada, como 
por exemplo, não utilizar os índices existentes para otimização?
 

 Tenho relatos de usuários, de que no momento desses locks, mesmo quando não 
ocorre bloqueio de uma sessão devido o row exclusive, o sistema apresenta uma 
queda de performance em transações que envolvem consultas das respectivas 
tabelas citadas.
 
Um abraço,
  

Responder a