Oracle
 sql >> Base de Dados >  >> RDS >> Oracle

Atualização rápida ao confirmar a visualização materializada


Não sei se o problema ainda persiste, mas ao dar uma olhada no artigo que você forneceu, notei algo (que pode ser a solução aqui):

Atualização do COMMIT

Uma visão materializada pode ser atualizada automaticamente usando o método ON COMMIT. Portanto, sempre que uma transação é confirmada que atualizou as tabelas nas quais uma visão materializada está definida, essas alterações são refletidas automaticamente na visão materializada. A vantagem de usar essa abordagem é que você nunca precisa se lembrar de atualizar a visualização materializada. A única desvantagem é que o tempo necessário para concluir a confirmação será um pouco mais longo devido ao processamento extra envolvido. No entanto, em um data warehouse, isso não deve ser um problema, pois é improvável que haja processos simultâneos tentando atualizar a mesma tabela.
  • Observe a linha em negrito.

Então nós temos:

Tabela 7-1 Métodos de atualização SOB DEMANDA

Atualizar descrição do parâmetro da opçãoCOMPLETO C Atualiza recalculando a consulta de definição da visão materializada.

RÁPIDO F Atualiza aplicando alterações de forma incremental à visualização materializada . Para visualizações materializadas locais, ele escolhe o método de atualização que é estimado pelo otimizador como mais eficiente. Os métodos de atualização considerados são FAST e FAST_PCT baseados em log.

FAST_PCT P Atualiza ao recalcular as linhas na exibição materializada afetadas por partições alteradas nas tabelas de detalhes.

FORÇA ? Tenta uma atualização rápida. Se isso não for possível, ele faz uma atualização completa. Para visualizações materializadas locais, ele escolhe o método de atualização que é estimado pelo otimizador como mais eficiente. Os métodos de atualização considerados são FAST, FAST_PCT e COMPLETE baseados em log.
  • Observe as linhas em negrito.
  • Pessoalmente, prefiro a opção FORCE.

Você poderia dizer, se isso ocorrer novamente depois de algum tempo (dependendo dos parâmetros do banco de dados e da máquina em que ele é executado, então não posso nem sugerir o quanto)?

Quando a atualização rápida é possível

Nem todas as visualizações materializadas podem ser atualizadas rapidamente. Portanto, use o pacote DBMS_MVIEW.EXPLAIN_MVIEW para determinar quais métodos de atualização estão disponíveis para uma visualização materializada.

Se você não tiver certeza de como tornar uma visualização materializada rapidamente atualizável, você pode usar o DBMS_ADVISOR.TUNE_MVIEW procedimento, que fornece um script contendo as instruções necessárias para criar uma visualização materializada de atualização rápida.

Felicidades