Pergunta

Qual é a diferença entre as visões e visões materializadas no Oracle?

Foi útil?

Solução

visões materializadas são baseados em disco e são atualizados periodicamente com base na definição de consulta.

As vistas são apenas virtual e executar a definição da consulta cada vez que eles são acessados.

Outras dicas

Visualizações

Eles avaliam os dados nas tabelas subjacentes à definição de exibição no momento a visão é consultado . É uma visão lógica de suas tabelas, sem dados armazenados em qualquer outro lugar.

A vantagem de um ponto de vista é que ele irá sempre retornam os dados mais recentes para você . O desvantagem de um ponto de vista é que o seu desempenho depende de como bom uma instrução SELECT a visão se baseia. Se a instrução SELECT utilizada pela vista junta muitas tabelas, ou usos associações com base em colunas não-indexados, a visão poderia executar mal.

visualizações materializadas

Eles são semelhantes aos pontos de vista regulares, em que eles são uma visão lógica dos seus dados (com base em uma instrução select), no entanto, o subjacente conjunto de resultados de consulta foi salvo em uma tabela . A vantagem disto é que quando você consulta uma visão materializada, você está consultando uma tabela , que também podem ser indexados.

Além disso, porque toda a junta ter sido resolvido em tempo de vista de atualização materializou, você paga o preço da junção uma vez (ou tão frequentemente como você refrescar a sua visão materializada), em vez de cada vez que você selecione a partir da visão materializada. Além disso, com a reescrita de consulta habilitado, a Oracle pode otimizar uma consulta que seleciona a partir da fonte de sua visão materializada na forma de uma que vez lê a partir de sua visão materializada. Em situações em que você criar visualizações materializadas como formas de tabelas agregadas, ou como cópias de consultas executadas com freqüência, isso pode acelerar bastante o tempo de resposta do seu aplicativo usuário final. O desvantagem, porém, é que os dados que você voltar da visão materializada é apenas como até à data como a última vez que a visão materializada foi atualizado .


visões materializadas pode ser configurado para atualizar manualmente, em um cronograma definido, ou com base no banco de dados detectar uma alteração nos dados de uma das tabelas subjacentes . visões materializadas podem ser incrementalmente atualizado por combinando-as com materializadas registros vista, que ato como fontes de captura de dados de alteração nas tabelas subjacentes.

visões materializadas são mais frequentemente utilizados em Data Warehousing / aplicações de business intelligence onde consultando grandes tabelas de fatos com milhares de milhões de linhas resultaria em consulta tempos de resposta, que resultaram em um aplicativo inutilizável.


visualizações materializadas também ajuda a garantir um momento consistente no tempo, semelhante ao instantâneo isolamento .

A exibição usa uma consulta aos dados de puxar a partir das tabelas subjacentes.

A visão materializada é uma tabela no disco que contém o conjunto de resultados de uma consulta.

vistas materializadas são utilizados principalmente para aumentar o desempenho da aplicação quando não é viável ou desejável a utilização de um padrão com vista índices aplicadas a ele. visualizações materializadas podem ser atualizados em uma base regular, quer através de gatilhos ou usando a opção ON COMMIT REFRESH. Isto requer algumas permissões extra, mas não é nada complexo. ON COMMIT REFRESH está em vigor desde pelo menos Oracle 10.

As vistas são essencialmente mesa-como lógica estruturas povoadas na mosca por uma determinada consulta. Os resultados de uma consulta vista não são armazenados em qualquer lugar no disco ea vista é recriado cada vez que a consulta é executada. visões materializadas são estruturas reais armazenados no banco de dados e gravados no disco. Eles são atualizados com base nos parâmetros definidos quando eles são criados.

visão materializada - uma mesa em um disco que contém o conjunto de resultados de uma consulta

Vista Non-materiased - uma consulta que puxa os dados da tabela subjacente

Vista: View é apenas uma consulta nomeada. Ele não armazena qualquer coisa. Quando há uma consulta em vista, ele é executado a consulta da definição de exibição. dados reais vem de mesa.

visões materializadas: Armazena dados fisicamente e ficar atualizado periodicamente. Ao consultar MV, dá dados de MV.

Adicionando a Mike McAllister é resposta muito-minuciosa ...

visões materializadas só pode ser configurado para atualizar automaticamente através do banco de dados de detecção de mudanças quando a consulta de vista é considerado simples pelo compilador. Se ele é considerado muito complexo, não vai ser capaz de definir o que são gatilhos essencialmente internos para acompanhar as mudanças nas tabelas de origem apenas para atualizar as linhas alteradas na tabela de mview.

Quando você cria uma visão materializada, você encontrará que a Oracle cria tanto o mview e como uma tabela com o mesmo nome , o que pode tornar as coisas confusas.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top