[firebase-br] Select para gente grande... muuuto lento

magno magnoscosta em bol.com.br
Sex Jun 10 19:22:20 -03 2005


Amigos tenho um probleminha pra gente grande..
1º vou a descriçao das tabelas..

TB_CENTROS DE CUSTO (CTCCUS)

Cod_interno int - chave
x1 - int

TB_CUSTOS (CUSCUS)

cod_lancamento - Int - chave
Cod_Centro - Int
Cod_Plano - Int
Cod_Grupo - Int
Cod_SubGrupo - Int
Valor - dec

Num grid eu listo os centros de custo e o usuário escolhe quais ele quer, 
marcando assim o campo X1, recebendo o valor 1.
Entaum ele pede para calcular...
rodando assim o seguinte select:
Select
 CUSCUS.COD_GRUPO,
 CUSCUS.COD_SGRUPO,
 CUSCUS.COD_PLANO,
 SUM(CUSCUS.VALOR),
  (select SUM(CUSCUS.VALOR)
    from CUSCUS left join CTCCUS on (CTCCUS.COD_INTERNO = CUSCUS.COD_CENTRO)
    Where CTCCUS.X1 = 1) Total_Valor
  from CUSCUS left join CTCCUS on (CTCCUS.COD_INTERNO = CUSCUS.COD_CENTRO)
    Where X1 = 1
 Group By
 CUSCUS.COD_GRUPO,
 CUSCUS.COD_SGRUPO,
 CUSCUS.COD_PLANO

ou seja o resultado é
Grupo    SubGrupo    Plano    Sum         ValorTotal
   01            02            01        500,00    100.000,00
   01            02            02        250,00    100.000,00
   02            01            01        350,00    100.000,00
   02            02            01        150,00    100.000,00

e por ai vai..
Resumindo agrupando cfe o Grup by descrito
Acontece q isso esta muito lento, levando em torno de 40s se tiver um centro 
selecionado se for uns 8 leva uns 5 minutos.. ..
Alguem teria uma dica para melhorar esta performance....

Att
Magno 





Mais detalhes sobre a lista de discussão lista