Diferença entre VIEWS e MATERIALIZED VIEWS no Oracle

Essas dias na comunidade dos alunos do curso Oracle SQL Essentials, um dos alunos me perguntou qual a diferença entre VIEWS e MATERIALIZED VIEWS no Oracle e eu achei que seria um assunto interessante a ser escrito aqui no site para que todas possam entender um pouco da diferença entre esses dois tipos de objetos distintos no Oracle.

O mais engraçado de tudo isso é que realmente esta é uma dúvida comum entre muitos profissionais Oracle que não tem ideia porque estão usando cada uma, apenas usam por um padrão de desenvolvimento ou por simplesmente achar que o plano de execução dessas ficam mais rápidas do que se usar apenas uma tabela, mas por trás disso tudo existe todo um mundo de recursos a ser explorado e que você lendo esse texto até o final talvez possa entender e aplicar de forma muito melhor.

Antes de mais nada vamos ao conceito de uso de cada um desses objetos, só essa dica já vai ajuda-lo e muito no seu dia-a-dia como desenvolvedor ou DBA Oracle.

Qual a principal utilidade de uma VIEW?

Parece ser uma pergunta fácil de ser respondida, mas na verdade talvez você não saiba o principal uso de uma VIEW. Bom basicamente VIEWS são consultas de tabelas do Oracle que ficam gravadas dentro do banco de dados, elas funcionam como tabelas que não existem, uma visão de dados mesmo.

A principal utilidade de uma VIEW é a segurança dos dados, isso mesmo a segurança. Apesar de pouco utilizado este é um recurso muito inteligente e que ajuda e muito a manter a integridade de informações, onde se criam VIEWS das tabelas e as informações dessa tabela passam a ser restritas onde só usuários com certas permissões podem acessa-las.

Uau … Mas e aí, bom e aí que muitas vezes as VIEWS não são utilizadas para isso, os desenvolvedores podem não saber, mas uma VIEW tem realmente as funções idênticas a de uma tabela, ou seja, você consegue sim fazer comando DML em uma VIEW e trata-la como uma tabela, porém colunas de uma segurança mais restrita você pode tirar, impedindo que usuários sem essas permissões consigam acessa-las.

OK, mas e as MATERIALIZED VIEWS, para que servem?

Olha as MATERIALIZED VIEWS servem exatamente para o mesmo que as VIEWS, mas para que usar um e não a outra? Nesse exato ponto é onde eu queria chegar.

As MATERIALIZED VIEWS ao contrário das VIEWS que são basicamente consultas que são sempre executadas sempre em tempo de execução, as MATERIALIZED VIEWS salvam essas informações, duplicando o que se encontra em determinadas tabelas, porém com os registros mais refinados, devido às cláusulas WHERE que são integradas nessas consultas para se formar a VIEW materializada.

Bom só por esse parágrafo já deu para perceber que as MATERIALIZED VIEWs ocupam mais espaço no banco de dados e que podem ser usados de forma diferentes das VIEWS, ou seja, com elas também podemos ter ganhos significativos de performance sim, mas devemos nos dosar muito bem na hora de utiliza-las.

Então basicamente MATERIALIZED VIEWs são um ótimo recurso para fazermos cálculos, isso mesmo, funções de calculo combinam muito bem com as tão temidas MATERIALIZED VIEWs. Este recursos vocês irão ver muito em DATA WAREHOUSES, afinal elas são super rápidas e como em DATA WAREHOUSE o espaço não é o nosso problemas e sim a performance elas casam muito bem com esses ambientes.

Se você quer conhecer ainda mais de VIEWs, indíces, dicionário de dados, queries complexas, funções SQL e muito mais, clique aqui e descubra o conteúdo do curso Oracle SQL Essentials e como este curso pode fazer diferença na sua vida profissional!

Agora eu gostaria de saber o que você achou desse artigo, para isso deixe um comentário abaixo me falando isso. Aproveita e já me deixa algumas sugestões de assuntos que podem ser abordados aqui no nosso site, talvez algum assunto interessante sobre tecnologia Oracle que pode agregar para todos nós.

10 Comentários

    1. admin

      Oi Thiago,

      Muito obrigado pelos comentários e pelas sugestões. Vamos levar em consideração para produzir os próximos materiais.

      abs
      William Miranda

      Responder
  1. Bruno Barreto

    Acredito que são data warehouses e não data wherehouses como está escrito duas vezes no seu texto. Tirando isso, bom texto!

    Responder
    1. admin

      Obrigado pelo feedback Bruno, vamos corrigir esse erro 🙂

      abs
      William Miranda

      Responder

  2. William, parabéns pelos cursos e pelo conteúdo gratuito.
    O post sobre materilized views foi rápido e eficaz. Para quem procura por uma definição rápida, sem delongas, aqui é o lugar.
    Obrigado!

    Responder
    1. admin

      Oi Romero, tudo bem?

      Muito obrigado pelo seu comentário, ficamos realmente muito felizes com o seu comentário!

      abs
      William Miranda

      Responder
  3. Emilia Rosa Anastacio Leite

    Muito bom o artigo!!! uma duvida que tinha a algum tempo… e agora foi esclarecida!!!
    Parabéns William e Equipe!!!
    Agradeço pelo bom conteúdo que você apresentam no Curso Certificação Oracle SQL Expert!

    Responder
    1. admin

      Oi Emilia, tudo bem?

      Fico muito feliz mesmo com o seu comentário 🙂

      Um grande abraço!
      William Miranda

      Responder
  4. Ivana

    William, muito bom este artigo.

    Parabéns pela inciativa de fornecer o conteúdo e gratuitamente.

    Tenho uma dúvida, existe algum tipo de restrição nas views materialized? Por exemplo, subconsultas?

    Obrigada desde já.

    Abs

    Responder
    1. admin

      Oi Ivana, tudo bem?

      Realmente as Materilized views não permitem subconsultas, mas você pode fazer uma materialized view de uma view, assim resolveria o seu problema.

      att
      William Miranda

      Responder

Deixe uma resposta

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *