Rafael
Primeiro, acredito que voce tem que informar aqui, qual o critério para
atualização das V. Materializadas (por dia, horas, por commit na tabelas,
exclusão de dados) ?
Já criei v. materializadas que na sua criação, indicam qual a forma de
atualização, exemplo (atualização a cada commit na tabela):
---
create materialized view mv2
refresh fast on commit
ENABLE QUERY REWRITE
as
select
t_key ,
count(*) as row_count ,
count(amt) as amt_count
from t2
group by t_key
;
--
Segue abaixo algumas possibilidades para indicar a forma de atualização via
cabeçalho:
create materialized view nome_visão
[build [deferred | immediate]]
[refresh [complete | fast | force]
[on commit | on demand]]
[start with date] [next date]]
[for update]
[[enable | disable] query rewrite]
as select
Um item importante é deixar o comando: ENABLE QUERY REWRITE ... que
permite ao otimizador reescrever queries, que podem se beneficiar da V.
Materializada.
Neto
Em 22 de junho de 2016 17:36, Rafael Mendonca raffaell.t...@yahoo.com
[oracle_br] escreveu:
>
>
> Cenário:
>
> Oracle 11.2.0.4 Enteprise Edition + grid infraestructure(ASM) standalone
> server
> AIX 64 bits
>
>
> Senhores, tenho algumas dúvidas em relação aos agendamentos das views
> materializadas e gostaria da ajuda de vocês.
>
> Estou em um cliente que possui centenas de MVs. Para **CADA** MV os
> desenvolvedores deste cliente pede para o DBA criar um JOB, um PROGRAM, um
> SCHEDULER para executar uma PROCEDURE com o código de REFRESH da MV, ou
> seja, todos os refreshes de MV's são feitas por DBMS_SCHEDULER.
>
> Como nunca tive muito convívio com MV's, sei que existe a possibilidade no
> próprio cabeçalho da view materializada ser configurado o período de
> atualização de acordo com a sua necessidade: Por commit, por demanda, por
> agendamento (horario) etc, o TIPO de ATUALIZAÇÃO: FAST, FULL etc.
>
> O que eu quero evitar em minha base de dados é que o CLIENTE perca a mania
> de estar sempre precisando criar um JOB/PROGRAM/SCHEDULER/PROCEDURE para o
> agendamento do REFRESH da view e comece a ser feito no próprio cabeçalho da
> view.
>
> a) Vocês seguem quais padrões para tal?
>
> b) Existe a possibilidade de realizar um REFRESH no modo FAST sendo uma
> view do tipo complexa?
>
> c) Vocês concordam com a minha ideia de evitar essa gama de criação de
> objetos para uma view ser atualizada?
>
>
> Fico no aguardo dos comentários.
>
> :)
>
>
>
>
>
>
>
>
>
>
>