Desconheço uma documentação porque é algo meio óbvio, derivam dos
conceitos de vm e trigger  as vantagens da vm sobre o trigger para
replicação oracle -> oracle : 

a. um trigger dispara NO MOMENTO em que houve o INSERT/UPDATE/DELETE,
onerando portanto o DML já no momento da execução, enquanto a vm (se
for refresh on commit) só dispara o processo de refresh em tempo de
commit, após portanto o processamento (já que pro recomendação o
commit é a última coisa na transação)

b. falando em overhead, se possível a mv pode ser refrescada de tempos
em tempos apenas,  a cada X minutos digamos, FORA da transação que
ocorreu, o que diminui AINDA MAIS (praticamente ZERA) o impacto na
transação original

c. a vm não trabalha com registro a registro, mas sim com uma QUERY
que é executada por trás dela, tal query pode ter (por exemplo) GROUP
BYs (já  guardando os dados agrupados/somados o que precisar),
enquanto que triggers NECESSARIAMENTE são FOR EACH ROW... Até se pode
ter a trigger enfiando os registros individuais numa tabela stage que
depois vc "massageia" via outra rotina, mas isso implica em mais
espaço em disco, mais escrita, mais overhead pro banco, mais trabalho
pro programador...

d. a vm tem o materialized view log, que possui colunas indicando o
último refresh e algumas infos administrativas do tipo, sem requerer
programação alguma, triggers (claro) podem ter isso desde que vc sente
e programe

==> então pra mim é claro : sempre usar VMs, desde que :

 - a sua versão de banco permita
 - a sua query respeite as regras de complexidade para fast refresh
(refresh completo da vm a cada atualização via de regra já eleimina
MUITAS das vantagens da vm)
 - vc não viole as limitações (de datatype e algumas outras) da vm

 imho trigger pra replicação de dados só mesmo se esses pre-reqs não
são atendidos, aí sim...

[]s

 Chiappa
--- Em oracle_br@yahoogrupos.com.br, "zidvlauns" <[EMAIL PROTECTED]> escreveu
>
> Olá!
> 
> Alguém tem alguma documentação sobre o que compensa mais usar para
> fazer uma replicação de dados entre esquemas: view materialida ou
trigger?
> 
> Desde já obg!
>


Responder a