[firebase-br] RES: Query Muito lenta!!! Parte II
Zottis
bzottis em ig.com.br
Qua Jul 11 16:35:19 -03 2012
O gargalo esta no max e no min da tabela Far_MTR e dos Valores_cliente
Tirando esses select cai para 1 segundo
-----Mensagem original-----
De: lista-bounces em firebase.com.br [mailto:lista-bounces em firebase.com.br] Em
nome de Marcelo Geyer
Enviada em: quarta-feira, 11 de julho de 2012 15:51
Para: FireBase
Assunto: Re: [firebase-br] Query Muito lenta!!! Parte II
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
______________________________________________
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
Mais detalhes sobre a lista de discussão lista