none
View(Fazer join com view) RRS feed

  • Pergunta

  • Boa tarde, 

       Varias vezes ao criar uma view faço um join com outras views, a construção é a mais rapida do que fazer varios join e outras tabelas, e a view fica com a escrita menor. Enfim a duvida é se criar view fazendo join com outras view afeta o desempenho. Qual a opnião de vocês sobre isso?

     

    Grato,

    Dyego Coelho

    quarta-feira, 13 de julho de 2011 21:26

Respostas

  • Diego,

          Qualquer query deve levar em consideração os índices correspondentes para uma boa performance. E em tese, criar views aninhadas não deveria impactar a perforamance, desde que o limite de 32 níveis de aninhamento sejam respeitados e as tabelas de origem possuam os índices corretos. Entretanto, nem sempre é isso que se vê nas bases de dados, onde as views aninhadas são criadas indiscriminadamente. Muitas vezes são criadas views de views com diversas construções que podem impactar a performance. De qualquer forma, sempre que possível, a view de view deve ser evitada.

     


    Roberto Fonseca MCT / MCITP - Database Administrator 2008 MCITP - Database Developer 2008 MCITP - Business Intelligence 2008
    quarta-feira, 13 de julho de 2011 23:04
    Moderador
  • Boa Noite,

    Não há nenhuma restrição técnica em usar uma View que chame outras Views. Do ponto de vista de encapsulamento, essa até pode ser uma boa idéia, mas vejo que várias views aninhadas podem provocar uma alto grau de acoplamento e potencialmente desempenho. Até acho que o otimizador não irá se perder, mas o problema é quando múltiplas views referenciam a mesma tabela. Suponha que uma view V1 chame as tabelas A e B e que uma View V2 chame as tabelas B e C. Combinar as tabelas A e C pode ser mais interessante que combinar as Views V1 e V2...

    [ ]s,

    Gustavo Maia Aguiar
    http://gustavomaiaaguiar.wordpress.com


    Classifique as respostas. O seu feedback é imprescindível
    quinta-feira, 14 de julho de 2011 03:51

Todas as Respostas

  • Dyego,

    Se as tabelas e seu banco estiverem bem modelados, com os indeces corretos, pks, fks, não irá afetar seu desempenho.

    um abraço.


    Jean Magalhães Analista de Sistemas
    quarta-feira, 13 de julho de 2011 21:58
  • Diego,

          Qualquer query deve levar em consideração os índices correspondentes para uma boa performance. E em tese, criar views aninhadas não deveria impactar a perforamance, desde que o limite de 32 níveis de aninhamento sejam respeitados e as tabelas de origem possuam os índices corretos. Entretanto, nem sempre é isso que se vê nas bases de dados, onde as views aninhadas são criadas indiscriminadamente. Muitas vezes são criadas views de views com diversas construções que podem impactar a performance. De qualquer forma, sempre que possível, a view de view deve ser evitada.

     


    Roberto Fonseca MCT / MCITP - Database Administrator 2008 MCITP - Database Developer 2008 MCITP - Business Intelligence 2008
    quarta-feira, 13 de julho de 2011 23:04
    Moderador
  • Boa Noite,

    Não há nenhuma restrição técnica em usar uma View que chame outras Views. Do ponto de vista de encapsulamento, essa até pode ser uma boa idéia, mas vejo que várias views aninhadas podem provocar uma alto grau de acoplamento e potencialmente desempenho. Até acho que o otimizador não irá se perder, mas o problema é quando múltiplas views referenciam a mesma tabela. Suponha que uma view V1 chame as tabelas A e B e que uma View V2 chame as tabelas B e C. Combinar as tabelas A e C pode ser mais interessante que combinar as Views V1 e V2...

    [ ]s,

    Gustavo Maia Aguiar
    http://gustavomaiaaguiar.wordpress.com


    Classifique as respostas. O seu feedback é imprescindível
    quinta-feira, 14 de julho de 2011 03:51
  • Amigos obrigado pela a ajuda,..Bom resumindo acho que cada passo deve ser analisado.

     

    abraço

    quinta-feira, 14 de julho de 2011 17:03