Diferença entre vista e vista materializada

Visão versus visão materializada

As visualizações e visualizações materializadas (mviews) são dois tipos de objetos de banco de dados oracle. Esses dois objetos consultam consultas selecionadas. Essas consultas selecionadas atuam como tabelas virtuais. Normalmente, visualizações e mviews referem-se a consultas de seleção grande, com conjunto de junções. Portanto, uma das principais vantagens das visualizações é que podemos armazenar consultas de seleção complexas como visualizações. Portanto, podemos ocultar a lógica por trás das consultas selecionadas de seus usuários finais. Quando precisamos executar a complexa instrução select, apenas precisamos executar

                      selecione * do viewname

Visão

Como mencionado anteriormente, view é uma tabela virtual, que oculta uma consulta de seleção. Essas consultas selecionadas não são pré-executadas. Quando executamos uma instrução de seleção de uma visualização, ela executa a instrução de seleção que está dentro do corpo da visualização. Vamos assumir a declaração select do corpo da visualização como uma declaração muito complexa. Portanto, quando é executado, leva algum tempo para ser executado (relativamente mais tempo). Além disso, o view usa um espaço muito pequeno para se armazenar. Isso ocorre porque ele possui apenas uma instrução select como conteúdo.

Vista materializada (Mview)

Este é um tipo especial de visão. As visualizações de tela são criadas quando temos problemas de desempenho com as visualizações. Quando criamos um mview, ele executa sua consulta de seleção e armazena sua saída como uma tabela de instantâneos. Quando solicitamos dados do Mview, ele não precisa executar novamente sua instrução select. Ele fornece a saída de sua tabela de instantâneos. Portanto, o tempo de execução do mview é menor que o view (para a mesma instrução select). No entanto, o mviews não pode ser usado o tempo todo, pois mostra a mesma saída, que é armazenada como uma tabela de instantâneos. Devemos atualizar o mview para obter seu último conjunto de resultados.

Qual é a diferença entre View e Mview?

1. O Mview sempre armazena sua saída como uma tabela de instantâneos quando é criada, mas o view não cria nenhuma tabela.

2. O modo de exibição não precisa de muito espaço para armazenar seu conteúdo, mas o mview precisa de espaço relativamente maior do que o modo de exibição para armazenar seu conteúdo (como uma tabela de instantâneos). 

3. View leva um tempo de execução maior, mas o mview leva um tempo de execução menor do que views (para a mesma instrução select).

4. O Mviews precisa ser atualizado para obter os dados mais recentes, mas as visualizações sempre fornecem os dados mais recentes.

5. O esquema precisa "Criar visão materializada" privilégio de criar mviews e, para visualizações, ele precisa "Criar visualização" privilégio.

6. Os índices podem ser criados em mviews para obter mais desempenho, mas os índices não podem ser criados em visualizações.