[firebase-br] Duvida com views

Gabriel Bonzanini gabriel.bonzanini em gmail.com
Seg Jul 29 15:34:56 -03 2019


Olá Marcelo!

Complementando a resposta do Cantu, acredito que seja melhor discriminar
campo a campo, pois assim você evita duplicidade de nomes entre as tabelas
envolvidas no select (aplicando apelidos).

Outro motivo para definir os campos explicitamente é que, pelo menos nas
versões em que fiz o teste, o Firebird cria uma tabela internamente
(RDB$RELATIONS) com seus respectivos campos (RDB$RELATION_FIELDS), de forma
estática com as informações existentes naquele momento. Ou seja, se você
incluir campos novos, eles não estarão disponíveis automaticamente na
views, o que torna a utilização do * praticamente inútil.

Abraço.

Em seg, 29 de jul de 2019 15:18, Marcelo - MK Softwares <
marcelo em mksoftwares.com.br> escreveu:

> Caro Helio, me desculpe, acabei respondendo pra você em vez de mandar
> no: lista em firebase.com.br
>
> Respondendo as informações
>
> Quando citei no exemplo Campo1, campo2 e minhatabela e minhaview, eram
> apenas como exemplo.
>
> Claro que não vou criar uma view com apenas 3 campos, elas serão usadas
> como o colega citou para fazer joins em outras tabelas, retornando
> vários campos.
>
> Mas com relação a minha dúvida: é melhor usar * representando todos os
> campos, ou descrever campo a campo dentro do select?
>
> */Atenciosamente:/*
> */Marcelo Krol/*
> /Proprietário/  _/Marcelo Krol Softwares/_
> Rua Presidente Vargas, 450 - Centro
> CEP: 84550-000 - Rebouças - Paraná
> Tel.: (42)3457-2653 ou (42)99906-5650
> /www.mksoftwares.com.br <http://www.mksoftwares.com.br>
> marcelo em mksoftwares.com.br <mailto:marcelo em mksoftwares.com.br>
> Skype: marcelo.krol/
>
> ------------------------------------------------------------------------
> _/*Aviso 1:*/_ 'Esta mensagem é direcionada apenas para os endereços
> constantes no cabeçalho inicial. Se você não está listado nos endereços
> constantes no cabeçalho, pedimos-lhe que desconsidere completamente o
> conteúdo dessa mensagem e cuja cópia, encaminhamento e/ou execução das
> ações citadas estão imediatamente anuladas e proibidas'.
> _/*Aviso 2:*/_ 'Apesar da MK SOFTWARES tomar todas as precauções
> razoáveis para assegurar que nenhuma virose esteja presente nesse
> e-mail, a empresa não poderá aceitar a responsabilidade por quaisquer
> perdas ou danos causados por esse e-mail ou por seus anexos'.
> ------------------------------------------------------------------------
>
> Em 29/07/2019 11:50, Hélio Oliveira escreveu:
> > Com certeza Cantu!
> >
> > Agora há situações em que ele pode estar criando uma view pelo simples
> > fato de necessitar fazer junção com outras tabelas e retornar alguns
> > valores destas e nesta situação eu também recomendaria o uso de SPs.
> >
> > Por exemplo:
> >
> > SELECT A.CODIGO, A.NOME, A.ENDERECO, A.CEP, B.NOME
> > FROM CLIENTES A
> >   JOIN CIDADE B ON (B.CODIGO_CIDADE = A.CODIGO_CIDADE)
> >
> > Neste simples exemplo se ele tiver uma tabela de cidade populada com
> > todas cidades dos Estados Brasileiro, ele pode ter um grande ganho
> > montando uma estratégia onde ele irá verificar o código da cidade
> > anterior sendo diferente ele busca no nome, caso contrario não e assim
> > sucessivamente.
> >
> > Em 29/07/2019 11:03, Carlos H. Cantu escreveu:
> >> A procedure selecionável só faz sentido se a informação devolvida
> >> precisar ser manipulada de alguma forma (através de cursores, etc) pra
> >> gerar o resultado, do contrário.
> >>
> >> Simplesmente jogar o select dentro de uma procedure não trará
> >> benefício nesse sentido.
> >>
> >> []s
> >> Carlos H. Cantu
> >> eBook Guia de Migração para o FB 3 - www.firebase.com.br/guiafb3.php
> >> www.FireBase.com.br - www.firebirdnews.org - blog.firebase.com.br
> >>
> >> HO> Bom dia!
> >>
> >> HO> Como bem respondeu Cantu, evite o famoso "SELECT * FROM MINHATABELA"
> >>
> >> HO> Uma sugestão... porque o amigo não utiliza Stored Procedures
> >> HO> selecionáveis ao invés de Views, a depender da quantidade de
> >> dados que
> >> HO> essas tabelas irão receber um determinado momento você poderá ter
> >> HO> problema de lentidão.
> >>
> >> HO> Em 28/07/2019 10:15, Marcelo - MK Softwares escreveu:
> >>>> Bom dia
> >>>>
> >>>> Estou adequando o meu sistema e estou fazendo mais uso de Views. Com
> >>>> isso surgiu uma dúvida: Quando vou chamar uma view no meu software, o
> >>>> que é mais rápido ou viável, ou ainda, qual a melhor prática para a
> >>>> sua
> >>>> execução? Segue exemplos:
> >>>>
> >>>> Método 1: select * from minhaview v where v.meucampo1 = 1;
> >>>>
> >>>> ou
> >>>>
> >>>> Método 2: select v.meucampo1, v.meucampo2, v.meucampo3 from
> >>>> minhaview v
> >>>> where v.meucampo1 = 1;
> >>>>
> >>>> Ressalto que a "execução" que me refiro acima é para o banco de dados,
> >>>> não para o aplicativo.
> >>
> >>
> >> ______________________________________________
> >> FireBase-BR (www.firebase.com.br) - Hospedado em www.locador.com.br
> >> Para saber como gerenciar/excluir seu cadastro na lista, use:
> >> http://www.firebase.com.br/fb/artigo.php?id=1107
> >> Para consultar mensagens antigas:
> >> http://www.firebase.com.br/pesquisa_lista.html
> >>
> >
> >
> >
> > ______________________________________________
> > FireBase-BR (www.firebase.com.br) - Hospedado em www.locador.com.br
> > Para saber como gerenciar/excluir seu cadastro na lista, use:
> > http://www.firebase.com.br/fb/artigo.php?id=1107
> > Para consultar mensagens antigas:
> > http://www.firebase.com.br/pesquisa_lista.html
> ______________________________________________
> FireBase-BR (www.firebase.com.br) - Hospedado em www.locador.com.br
> Para saber como gerenciar/excluir seu cadastro na lista, use:
> http://www.firebase.com.br/fb/artigo.php?id=1107
> Para consultar mensagens antigas:
> http://www.firebase.com.br/pesquisa_lista.html
>



Mais detalhes sobre a lista de discussão lista