Boa Tarde!
Chiappa, analisei o outro ambiente não encontrei um *Refresh Group* criado
neste ambiente, verifiquei o parâmetro e estão iguais nos ambientes.
SQL> show parameter QUERY_REWRITE_INTEGRITY;
NAME TYPEVALUE
-
Opa, então : na verdade, se a MV é REFRESH ON DEMMAND, é ** conceitual ** que
após qualquer alteração de dados e/ou estrutura a mv ficou DIFERENTE das
tabelas/objetos base, então ela VAi ficar inválida, exemplo (em 11.2.0.1 mas
afaik é o mesmo nos outros 11gr2) :
SYSTEM:@o11201:SQL>get 1.sql
Chiappa eu li sim suas respostas.
"Só pra confirmar : vc ** LEU ** na minha resposta que quando a mv Não É
REFRESH ON COMMIT, aí QUALQUER DML em QUALQUER das tabelas automaticamente
deixa a view INVÁLIDA , por conceito, sem ser bug nenhum, é assim MESMO q
funciona ??? Vc TEM TOTAL CERTEZA que não
Só pra confirmar : vc ** LEU ** na minha resposta que quando a mv Não É REFRESH
ON COMMIT, aí QUALQUER DML em QUALQUER das tabelas automaticamente deixa a view
INVÁLIDA , por conceito, sem ser bug nenhum, é assim MESMO q funciona ??? Vc
TEM TOTAL CERTEZA que não é esse mesmo o caso ?
E sobre a
Olá Eriovaldo!
A coluna FAILURES está = 0 sim, hoje eu percebi que não é mesmo refresh que
a faz ficar invalida, e sim a quando ocorre algum insert ou update em
alguma tabela que a view utiliza. E se você recompilar, ela fica valida
novamente, porém quando ocorre alguma alteração ou inserção ela v
Olá,
Mária Cristina,
1.) Se você olhar a coluna user_jobs.failure e a mesma estiver com 0 (zero)
significa que o refresh da mview está acontecendo sem erros e o resultado
esperado está garantido.
2.) Já vi uma análise desse tipo onde esse INVALID significa que os dados
deste objetos não são mais
Bom dia!
Agradeço as alternativas mas não tem nenhuma das suas suposições aplicadas
a este caso, eu verifiquei todos os objetos que poderiam ser dependentes
mas nenhum estão inválidos, simulei o ambiente criando MV minhas, criei as
tabelas e criei a MV sobre essas tabelas para realizar os teste, p
Eu consigo pensar nas seguintes possibilidades :
a. Qualquer um dos objetos referenciados pela mv foi alterado por DDL e/ou se
tornou inválido por alterações/recompilações nas dependências deles, aí a mv
fica inválida também
ou
b. A MV ** não é ** de REFRESH ON COMMIT, aí OBVIAMENTE qualquer o