View Materializada
As View Materialized assim conhecidas desde a versão 9i, são nada mais que objetos do banco de dados Oracle que contém dados locais de tabelas remotas ou são usadas pra criar uma agregação de tabelas em um determinado intervalo de tempo.
Uma curiosidade nas versões precedentes à 9i as Views Materializadas eram conhecidas como Snapshots.
Como meu professor Milton Goya já comentou, Snapshot é o nome utilizado na versão 7 do Oracle.
O comando abaixo demonstra como podemos criar uma View Materializada:
CREATE MATERIALIZED VIEW vm_employees
REFRESH FAST
START WITH SYSDATE + 1
NEXT SYSDATE + 1/24
WIDTH PRIMARY KEY
AS
SELECT empno, ename, job, salary
FROM emp;
Na sequência será detalhada cada linha do comando demonstrado acima.
CREATE MATERIALIZED VIEW vm_employees
Inicio da sintaxe para criar a visão chamada de vm_employees.
REFRESH FAST
O REFRESH indica o tipo de atualização que sofrerão os dados contidos na visão.
Existem três estados ou métodos sendo FAST, COMPLETE e FORCE.
FAST: Atualiza somente as linhas da tabela original que sofreram atualizações.
COMPLETE: Recria toda a estrutura da view materializada mesmo que não seja necessário.
FORCE: Se não for específicado o método de atualização, o padrão é FORCE, que tentará fazer uma atualização FAST se não for possível irá fazer a COMPLETE.
START WITH SYSDATE + 1
Indica que quando o banco irá fazer a primeira replicação.
NEXT SYSDATE + 1/24
Determina o intervalo entre a próxima replicação.
WIDTH PRIMARY KEY
É utilizado para criar a Chave-Primária, que é baseada na chave-primária da tabela master.
Concluí-se com esses post-tutorial que view materializadas são extremamente uteís no dia-a-dia de uma companhia que trabalha com centenas de milhares de tuplas e, o acesso à elas acaba ficando custoso. Este tipo de objeto ajuda a diminuir acesso as tabelas master de uma maneira segura e íntegra.









Só um pequeno comentário: Snapshot era na versão 7. A view materializada surgiu com a versão 8i. Veja o link para mais exemplos: http://www.cs.umbc.edu/help/oracle8/server.815/a67779/toc.htm
Valeu pela força de postar esta view, ajudou muito no meu entendimento. espero o proximo.
Gostaria de saber a diferença entre Materialized Views somente Leitura, e Materialized view atualiaveis, principalmente porque segundo as poucas fontes que encontrei, parece referir-se a atualizações na MV, que possam ser replicadas na Tabela Mestre, uma vez que MV Atualizaveis somente sao possiveis em MV Simples (apenas uma tabela mestre), enquanto as somente leitura sao possiveis tanto em MV Simples, quanto em MVs complexas.
gostaria de saber se existe a possibilidade de uma Materializated View que siga o seguinte formato.
Create Materializated View VM_name
Refresh Fast
Start With Date_X
Next Date_x + 24h
AS
Select CampoA, CampoB, CampoC, CampoD
from TableA, TableB, TableC
where CampoA = “Z” OR CampoA =”D”