DBMS_SNAPSHOT ou DBMS_MVIEW

DBA Geral (instalação, configuração do banco, scripts do Sql*Plus, shell scripts, batch scripts, etc...)
Responder
Avatar do usuário
bessa_lucas
Rank: Programador Sênior
Rank: Programador Sênior
Mensagens: 55
Registrado em: Sex, 17 Out 2014 3:02 pm
Lucas Bessa
Analista de Sistemas

lucas.bessa@obers.com.br
lucas.bessa.ti@gmail.com

Pessoal tem duas duvidas sobre atualização da Materialized View

Quando devo usar DBMS_SNAPSHOT ou DBMS_MVIEW?

Porque pelo que li, as duas atualizam da mesma forma a Materialized View.

A segunda dúvida é, tenho algumas materialized view que devem rodar do período de 00:00 as 06:00. O problema é que algumas estão extrapolando isso.

Teria como atualizar somente um período? Essa tabela pega movimentações antigas, então queria atualizar somente os últimos 2 anos. Como fazer isso?
Avatar do usuário
adrianoturbo
Moderador
Moderador
Mensagens: 393
Registrado em: Qui, 20 Mar 2008 4:09 pm
Localização: Brasília
Adriano Alves
---Para cada problema dificil existe uma solução simples.----

Brother,dbms_mview é um synonym da dbms_snapshot ,logo estamos falando do mesmo recurso de atualização de
Materialized Views manual.
Quanto a questão do período de execução : seria interessante verificar o tipo de atualização que está sendo feita ,se é incremental ou completa.
Tudo leva crer que deva ser completa para estar demandando tanto tempo.
O ideal seria trabalhar com as atualizações incrementais,pois ela é mais rápida que a completa.
O problema da atualização completa é que ela faz todo o processo de reconstrução da Materialized Views e isso faz com que demore ,já a atualização incremental elimina a possibilidade de ter que ficar reconstruindo Materialized Views.
Avatar do usuário
bessa_lucas
Rank: Programador Sênior
Rank: Programador Sênior
Mensagens: 55
Registrado em: Sex, 17 Out 2014 3:02 pm
Lucas Bessa
Analista de Sistemas

lucas.bessa@obers.com.br
lucas.bessa.ti@gmail.com

Adriano,

Obrigado pelo retorno

E como faço essa atualização incremental?
Avatar do usuário
adrianoturbo
Moderador
Moderador
Mensagens: 393
Registrado em: Qui, 20 Mar 2008 4:09 pm
Localização: Brasília
Adriano Alves
---Para cada problema dificil existe uma solução simples.----

Brother,basta rodar o comando abaixo :

Selecionar tudo

SQL> execute DBMS_SNAPSHOT.REFRESH( 'Sua_Materialized_View','f');
Para conhecimento na execução da procedure o parâmetro f ,significa Atualização Incremental .
Se fosse uma Atualização Completa utilizaria a letra c ,como no exemplo abaixo :

Selecionar tudo

SQL> execute DBMS_SNAPSHOT.REFRESH( 'Sua_Materialized_View','c');
Responder
  • Informação
  • Quem está online

    Usuários navegando neste fórum: Nenhum usuário registrado e 9 visitantes