Diferença entre vista e vista materializada

Anonim

Exibir vs visualização materializada

selecione * de viewname

Exibir

Como mencionado anteriormente, a exibição é uma tabela virtual, que esconde uma consulta selecionada. Essas consultas selecionadas não são pré-executadas. Quando executamos uma declaração seletiva de uma vista, ela executa a instrução select que está dentro do corpo da visão. Vamos assumir a declaração seletiva do corpo da visão como uma afirmação muito complexa. Então, quando é executado, leva algum tempo para executar (relativamente mais tempo). Além disso, a vista usa espaços muito pequenos para armazenar. Isso ocorre porque ele tem apenas uma declaração seletiva como seu conteúdo.

Visualização materializada (Mview)

Este é um tipo de visualização especial. As visualizações são criadas quando temos problemas de desempenho com visualizações. Quando criamos um mview, ele executa sua consulta seleta e armazena sua saída como uma tabela de instantâneo. Quando solicitamos dados do Mview, não é necessário reexecutar sua declaração seletiva. Ele fornece a saída da sua tabela de instantâneos. Portanto, o tempo de execução do mview é menor do que a visualização (para a mesma instrução de seleção). No entanto, os mviews não podem ser usados ​​em todo o tempo, pois mostra a mesma saída, que é armazenada como uma tabela de instantâneo. Devemos atualizar o mview para obter o 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âneo quando ela é criada, mas a exibição não cria tabelas.

2. O View não precisa de um grande espaço para armazenar seu conteúdo, mas o mview precisa de espaço relativamente maior do que uma visualização para armazenar seu conteúdo (como uma tabela de instantâneo).

3. A exibição leva um tempo de execução maior, mas mview leva menor tempo de execução do que as visualizações (para a mesma instrução de seleção).

4. As visualizações precisam ser atualizadas para obter seus dados mais recentes, mas as visualizações sempre dão seus dados mais recentes.

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

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