- Este tópico contém 4 respostas, 2 vozes e foi atualizado pela última vez 17 anos, 3 meses atrás por
Cfoliveira.
-
AutorPosts
-
28 de novembro de 2008 às 5:13 pm #84011
Cfoliveira
ParticipanteOlá pessoal,
Estou com um problema no uso de materialized views pelo query rewrite do otimizador quando essas views são importadas em outro banco. A parametrização e versão dos bancos são iguais. Alguém sabe me dizer o que pode estar ocasionando isso?
O problema é resolvido quando recrio a MV.
Segue abaixo informações obtidas do dbms_advisor.
QSM-01150: query did not rewrite
QSM-01031: materialized view, IN_DW_F_ATENDIMENTOS_MV, is stale in TRUSTED integrity mode
QSM-01082: Joining materialized view, IN_DW_F_ATENDIMENTOS_MV, with table, IN_DW_D_SERVICOS, not possible
QSM-01102: materialized view, IN_DW_F_ATENDIMENTOS_MV, requires join back to table, IN_DW_F_ATENDIMENTOS, on column, ATE_VALOR_PAGTO
QSM-01102: materialized view, IN_DW_F_ATENDIMENTOS_MV, requires join back to table, IN_DW_F_ATENDIMENTOS, on column, ATE_VALOR_COBR
QSM-01102: materialized view, IN_DW_F_ATENDIMENTOS_MV, requires join back to table, IN_DW_F_ATENDIMENTOS, on column, ATE_QUANTIDADE
QSM-01102: materialized view, IN_DW_F_ATENDIMENTOS_MV, requires join back to table, IN_DW_F_ATENDIMENTOS, on column, ATE_QUANTIDADE_UNIDADE_PGTO
QSM-01102: materialized view, IN_DW_F_ATENDIMENTOS_MV, requires join back to table, IN_DW_F_ATENDIMENTOS, on column, ATE_VALOR_UNIDADE_PGTO
QSM-01102: materialized view, IN_DW_F_ATENDIMENTOS_MV, requires join back to table, IN_DW_F_ATENDIMENTOS, on column, ATE_QUANTIDADE_HORAS
QSM-01102: materialized view, IN_DW_F_ATENDIMENTOS_MV, requires join back to table, IN_DW_F_ATENDIMENTOS, on column, ATE_SER_SK
QSM-01102: materialized view, IN_DW_F_ATENDIMENTOS_MV, requires join back to table, IN_DW_D_SERVICOS, on column, SER_SK
QSM-01263: query rewrite not possible when query references a dictionary table or viewGrata,
Cláudia Oliveira
28 de novembro de 2008 às 5:22 pm #84012Marcio68Almeida
ParticipanteCreio que…
Pode ser um problema de permissões…
ou então..
Mesmo os objetos tendo o mesmo nome, pode haver algum problema de referência, pois o ID de cada objeto em um banco tem um ID diferente no outro…
Se você recriar dá certo ???
Qual recurso está usando para a importação ???28 de novembro de 2008 às 5:32 pm #84013Cfoliveira
Participante[quote=”Marcio68Almeida”:2trjg5bd]Creio que…
Pode ser um problema de permissões…
ou então..
Mesmo os objetos tendo o mesmo nome, pode haver algum problema de referência, pois o ID de cada objeto em um banco tem um ID diferente no outro…
Se você recriar dá certo ???
Qual recurso está usando para a importação ???[/quote]
Olá Márcio,
Se eu recriar a MV dá certo. Fiz testes com os utilitários imp.exe e impdp.exe (Data Pump). Com relação ao ID faz sentido… será que é isso?
28 de novembro de 2008 às 5:39 pm #84014Marcio68Almeida
Participante[quote=”Cfoliveira”:1bs5pv9m]
Se eu recriar a MV dá certo. Fiz testes com os utilitários imp.exe e impdp.exe (Data Pump). Com relação ao ID faz sentido… será que é isso?[/quote]Teoricamente quando você faz um import o Oracle cria ou recria, mas aparentemente isso não é verdade, pelo menos não em todas as situações…
Muitas vezes quando vou importar um esquema, as procedures são importadas inválidas, tendo que ser revalidades posteriormente, eu criei o hábito de recompilar tudo depois de um import…1 de dezembro de 2008 às 8:26 pm #84040Cfoliveira
Participante[quote=”Marcio68Almeida”:11hy06mx][quote=”Cfoliveira”:11hy06mx]
Se eu recriar a MV dá certo. Fiz testes com os utilitários imp.exe e impdp.exe (Data Pump). Com relação ao ID faz sentido… será que é isso?[/quote]Teoricamente quando você faz um import o Oracle cria ou recria, mas aparentemente isso não é verdade, pelo menos não em todas as situações…
Muitas vezes quando vou importar um esquema, as procedures são importadas inválidas, tendo que ser revalidades posteriormente, eu criei o hábito de recompilar tudo depois de um import…[/quote]Márcio, resolvi o problema mudando o parâmetro QUERY_REWRITE_INTEGRITY para STALE_TOLERATED.
Segundo o artigo do AskTom (abaixo), após o imp de MV que não são do tipo REFRESH ON COMMIT precisa fazer a atualização dos dados (refresh) ou colocar o parâmetro query_rewrite_integrity como “stale_tolerated” para aceitar dados antigos porque a MV após ser criada durante o imp, fica no estado STALE (velha).
http://asktom.oracle.com/pls/asktom/f?p … 1191739042
-
AutorPosts
- Você deve fazer login para responder a este tópico.