[firebase-br] Recurso Firebird

Gladiston Santana gladiston em vidy.com.br
Ter Jan 21 10:42:54 -03 2014


Para tabelas pequenas não há problemas, mas visto que não se pode usar um
indice para uma procedure, ficará pouco performatico numa tabela maior.
Se isso for um problema no futuro, tente fazer todo o tratamento possível
dentro da SP, explodindo os resultados de que precisa. Outros recursos
associados a performance seria usar gtt (insert into tabela_gtt...select
from) e fazer seu processamento diretamente da gtt.

Notei que voce fez um select from (select...from), quando fizer um select
do select na clausula from, dê preferencia para usar 'with query1 as(....)
select a,b,c from query1', ex:
with agenda_dupla as (
  select a.id_colaborador, a.dt_inicial, a.dt_final, a.descricao,
a.status_com from agenda a
  where a.id_colaborador=0
  and (a.dt_inicial BETWEEN '21.01.2013' AND '21.01.2014')
  union
  select a.id_colaborador, a.dt_inicial, a.dt_final, a.descricao,
a.status_com from agenda a
  where a.id_colaborador=10
  and (a.dt_inicial BETWEEN '21.01.2013' AND '21.01.2014')
)
select a.id_colaborador, a.dt_inicial, a.dt_final, a.descricao,
a.status_com from agenda_dupla a
order by a.dt_inicial

Note que nesse método (conhecido como CTE), faço um select a partir dum
select anterior e defino uma ordem diferente. Além de mais elegante, é mais
performático do que escrever uma query mais complexa  como o que você fez,
em meus testes pessoais usando CTE é mais rápido, especialmente quando há
uma repetição (e prepare).


Em 20 de janeiro de 2014 09:24, Renan Rogowski Pozzo
<renanrpozzo em gmail.com>escreveu:

> Bom dia,
> obrigado pelas dicas.
> Resolvi criando uma procedure que retorna os valores que preciso, e depois
> fiz um novo select (select * from nova_procedure) chamando essa procedure e
> informando as condições. Não sei se é a melhor forma, mas funcionou.
> Mais uma vez obrigado.
>
> Abraço,
> Renan Rogowski Pozzo
>
> *"Entrega o teu caminho ao Senhor; confia nele, e ele o fará." Salmos 37:5*
>
>
> Em 17 de janeiro de 2014 14:55, Gladiston Santana
> <gladiston em vidy.com.br>escreveu:
>
> > laço for...select, mas nesse caso só anda pra frente, registro a
> registro,
> > se quiser alterar algo no registro que estiver posicionado tem que criar
> > outra query de update dentro desse laço.
> > ou usando cursores, parecido com for...select, com a diferença de que não
> > tem laço e só vai para frente quando voce executa um fetch, em alguns
> SGBDs
> > pode-se editar diretamente o registro sob o qual esta posicionado sem
> > precisar doutra query de update, mas me parece que o FB não permite isso.
> >
> >
> > Em 17 de janeiro de 2014 13:37, Renan Rogowski Pozzo
> > <renanrpozzo em gmail.com>escreveu:
> >
> > > Boa tarde,
> > > estou com uma dúvida.
> > >
> > > Consigo fazer um select e dentro desse select ir passando registro por
> > > registro para ver se atende há uma outra condição?
> > > Seria algo semelhante ao uso do clientdataset no Delphi, onde posso
> > > carregar os dados e ir verificando linha a linha.
> > >
> > > Obrigado.
> > >
> > > Abraço,
> > > Renan Rogowski Pozzo
> > >
> > > *"Entrega o teu caminho ao Senhor; confia nele, e ele o fará." Salmos
> > 37:5*
> > > ______________________________________________
> > > 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://firebase.com.br/pesquisa
> > >
> >
> >
> >
> > --
> > --
> > B em B@BU     iB em M@B.  B em MBBO   MBBMMB em B@BZLr    E@@@@i      r@@@BU
> > vB em M@O     E em B@Bu   BBBM em 0   G em MMM@N8MBB em ZP5r  B em B@k      8B@@O
> >  OB em B@q   2 em BBBM    B em B@BO   BB em B@B,.:,7B em B@@L uB em B@,    OB em B@.
> >  ,@@@B@   @BBB@,    @BBB em 8   M em M@@@     PB em B@B  @@@BN   iB em B@L
> >   U em B@B2 LB em B@X     B em MBBO   MBBM em B     i em BBB@. 7 em B@Bi  B em B@E
> >    B@@@BiM em M@B.     @BBM em G   M em MMB@     v@@M em B,  G em B@Z v em B@B.
> >    7B em B@O em B@B5      B em B@B8   BBBM em B     Z@@@B@   iB@@@2 em B@Br
> >     NB em M@B em B8       @B em B@8   M em B@B em i:i75 em B@B em r    E@@B em B@Bq
> >     . em B@@@B@:       B em B@B@   @B@@@B em B@B@@@ME;     .BB em MBB@
> >      55.ANOS        OMOGBS   PBZGGOOMOO117,        7 em BBB@r
> >      ==============================================r@@@@F=====
> >      Gladiston Santana                             8 em B@B,
> >      Supervisor de TI                             G em B@B7
> >      Tel.:+551147873122 R:228                    :@B em B0
> >      Grupo VIDY - SGQ ISO9001 - 55 ANOS          @B em B@.
> >      Visite nosso site: www·vidy·com·br         BB@@@u
> >      Visite também : www·expolabor·com·br      GB em B@N
> > ______________________________________________
> > 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://firebase.com.br/pesquisa
> >
> ______________________________________________
> 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://firebase.com.br/pesquisa
>



-- 
--
B em B@BU     iB em M@B.  B em MBBO   MBBMMB em B@BZLr    E@@@@i      r@@@BU
vB em M@O     E em B@Bu   BBBM em 0   G em MMM@N8MBB em ZP5r  B em B@k      8B@@O
 OB em B@q   2 em BBBM    B em B@BO   BB em B@B,.:,7B em B@@L uB em B@,    OB em B@.
 ,@@@B@   @BBB@,    @BBB em 8   M em M@@@     PB em B@B  @@@BN   iB em B@L
  U em B@B2 LB em B@X     B em MBBO   MBBM em B     i em BBB@. 7 em B@Bi  B em B@E
   B@@@BiM em M@B.     @BBM em G   M em MMB@     v@@M em B,  G em B@Z v em B@B.
   7B em B@O em B@B5      B em B@B8   BBBM em B     Z@@@B@   iB@@@2 em B@Br
    NB em M@B em B8       @B em B@8   M em B@B em i:i75 em B@B em r    E@@B em B@Bq
    . em B@@@B@:       B em B@B@   @B@@@B em B@B@@@ME;     .BB em MBB@
     55.ANOS        OMOGBS   PBZGGOOMOO117,        7 em BBB@r
     ==============================================r@@@@F=====
     Gladiston Santana                             8 em B@B,
     Supervisor de TI                             G em B@B7
     Tel.:+551147873122 R:228                    :@B em B0
     Grupo VIDY - SGQ ISO9001 - 55 ANOS          @B em B@.
     Visite nosso site: www·vidy·com·br         BB@@@u
     Visite também : www·expolabor·com·br      GB em B@N



Mais detalhes sobre a lista de discussão lista