Oi : o "artigo do Tom Kyte" a que vc se refere é o 
https://asktom.oracle.com/pls/asktom/f%3Fp%3D100:11:0::::P11_QUESTION_ID:4399099500346197085
 , correto ? Esse artigo mostra que (como também Documentado na nota metalink 
"Materialized View Refresh is Hanging With JI Contention" (Doc ID 1358453.1) , 
esse enqueue JI é o enqueue que serializa o refresh/recriação de uma view 
materializada - NÂO HÁ 'problema' algum por parte do RDBMS em princípio, é uma 
questão de concorrência, em tese... Esse enqueue  tanto pode aparecer em 
situações onde duas sessões estão tentando fazer o refresh simultaneamente 
(https://dbhk.wordpress.com/2009/12/08/refresh-materialized-view-hung/ 
exemplifica) quanto em situações onde há uma OUTRA sessão fora a do refresh 
fazendo ALTERAÇÂO DE ESTRUTURA na view e/ou na(s) tabela(s) que a compõem , Ou 
está havendo algum aceso interno aos dados (por exemplo Replicações cfrme 
http://www.orafaq.com/forum/t/127829/) nas tabelas OU mesmo há SQLs recursivos 
(como por exemplo os derivados de CONSTRAINTS) que ainda estão rolando e 
segurando o refresh 
(http://rwijk.blogspot.com.br/2010/01/enq-ji-contention.html dá um exemplo)... 
Até houveram BUGs sobre isso, como o     Deadlock On Commit Materialized View 
(Doc ID 1312379.1) mas isso há muuuito tempo lá na época do 10g, certamente não 
deve ser nada disso... 
 A minha Recomendação é dupla :
 
 a) abra um Chamado no Suporte apenas pára estar certo de que não há re-raise 
desses bugs antigos, a chance é pequena mas faça de qquer maneira
 
 e
 
 b) tenha ** CERTEZA ** de que não está havendo múltiplas ocorrências de 
REFRESH - como vc diz que é REFRESH ON DEMAND e NÂO VEJO vc indicar START nem 
nada assim eu ** IMAGINO ** que está por sua conta os refreshs bem como o 
Controle das sessões que o fazem

e

 c)  INVESTIGUE as Atividades de banco envolvidas (tanto no banco local quanto 
no banco remoto que o @databaselink COM CERTEZA indica, embora vc não nos diga 
isso claramente) : isso vai envolver desde consulta aos Locks e Transações 
ativas (vide os scripts indicados na nota metalink inicialmente citada), 
monitoração das views de WAITs, eventual TRACE, é por aí
 
 []s
 
   Chiappa

Responder a