[firebase-br] Query Muito lenta!!! Parte II

Marcelo Geyer estanisgeyer em gmail.com
Qua Jul 11 15:51:03 -03 2012


Já experimentou quebrar esse SELECT em pedaços para verificar em que ponto
ele faz o gargalo?

Em 11 de julho de 2012 11:59, Alysson Gonçalves de Azevedo <
agalysson em gmail.com> escreveu:

> Tenho uma duvida que pode ajudar...
>
> Os campos "COMPUTED BY" são calculados toda vez que são exibidos, certo?
> Para cada select que exibe aquele campo, é feito os cálculos novamente,
> seria isso mesmo?
>
> Se sim, todos esses campos computados ai não me parecem que são alterados
> constantemente (como seria, por exemplo, o
> "TOTAL_VENDAS_PROFISSIONAL_NO_MES").
>
> Nesse caso, por que recalcular eles à cada select? Não é melhor criar um
> campo normal para esses valores e atualiza-los por trigger. Assim os
> cálculos seriam feitos apenas quando necessário.
>
> Alysson Gonçalves de Azevedo
> (11) 8491-7730
>
>
>
>
> 2012/7/11 Zottis <bzottis em ig.com.br>
>
> > ....Na tabela principal(Clientes) tenho campos calculados.
> >
> >
> >
> >     NOME_MONTADO           COMPUTED BY (NOME_FANTASIA || ' - '||
> > RAZAO_SOCIAL || ' - '|| (select E.Sigla from Empresa E where Cod_empresa
> =
> > E.Codigo)),
> >
> >     PROXIMA_COLETA         COMPUTED BY (cast(
> >
> >                               (select max(F.Data_Coleta)from Far_Mtr F
> > where
> > F.cod_cliente = Clientes.cod_cliente)
> >
> >                                     + Clientes.Intervalo_coleta AS
> date)),
> >
> >     SERASA                 COMPUTED BY (case
> >
> >                      when (SELECT COUNT (CT.cod_conta) FROM ctarec CT
> WHERE
> > CT.cod_cliente = CLIENTES.cod_cliente and CT.Deletado = 'N' AND
> CT.serasa =
> > 'S' )> 0 then 'S'
> >
> >                      when (SELECT COUNT (CT.cod_conta) FROM CTAREC CT
> WHERE
> > CT.cod_cliente = CLIENTES.cod_cliente and CT.Deletado = 'N' AND
> CT.serasa =
> > 'S') = 0 then 'N'
> >
> >                              end),
> >
> >     CENTRAL_COBRANCA       COMPUTED BY (case
> >
> >                          when (SELECT COUNT (CT.cod_conta) FROM ctarec CT
> > WHERE CT.cod_cliente = CLIENTES.cod_cliente and CT.Deletado = 'N' AND
> > CT.central_cobranca = 'S' )> 0 then 'S'
> >
> >                          when (SELECT COUNT (CT.cod_conta) FROM CTAREC CT
> > WHERE CT.cod_cliente = CLIENTES.cod_cliente and CT.Deletado = 'N' AND
> > CT.central_cobranca = 'S') = 0 then 'N'
> >
> >                              end),
> >
> >     COM_COMODATO           COMPUTED BY (case
> >
> >                                      when (SELECT COUNT
> (CMT.cod_comodato)
> > FROM comodato CMT WHERE CMT.cod_cliente = CLIENTES.cod_cliente ) > 0 then
> > 'S'
> >
> >                                      when (SELECT COUNT
> (CMT.cod_comodato)
> > FROM comodato CMT WHERE CMT.cod_cliente = CLIENTES.cod_cliente ) = 0 then
> > 'N'
> >
> >                                   end)
> >
> >
> >
> >
> >
> > .....
> >
> >
> >
> >
> >
> > ______________________________________________
> > 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
>



-- 
Marcelo E. Geyer
Standard Net Tecnologia e Informação



Mais detalhes sobre a lista de discussão lista