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

Zottis bzottis em ig.com.br
Qua Jul 11 08:21:30 -03 2012


....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)

 

 

.....

 

 




Mais detalhes sobre a lista de discussão lista