Pular para o conteúdo
  • Este tópico contém 4 respostas, 2 vozes e foi atualizado pela última vez 17 anos, 3 meses atrás por Cfoliveira.
Visualizando 5 posts - 1 até 5 (de 5 do total)
  • Autor
    Posts
  • #84011
    Cfoliveira
    Participante

      Olá 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 view

      Grata,

      Cláudia Oliveira

      #84012
      Marcio68Almeida
      Participante

        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 ???

        #84013
        Cfoliveira
        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?

          #84014
          Marcio68Almeida
          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…

            #84040
            Cfoliveira
            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

            Visualizando 5 posts - 1 até 5 (de 5 do total)
            • Você deve fazer login para responder a este tópico.