[firebase-br] Query muito lenta!!! Parte III

Zottis bzottis em ig.com.br
Qua Jul 11 08:22:31 -03 2012


… Segue o SQL:

select C.COD_CLIENTE, C.DATA_CAD, C.COD_EMPRESA, C.COD_USUARIO,
C.NOME_FANTASIA,
       C.RAZAO_SOCIAL, C.ENDERECO, C.NO_CASA, C.BAIRRO, C.CEP, C.COD_CIDADE,
       C.FONE, C.CELULAR, C.FAX, C.CPF_CNPJ, C.RG_INSC, C.CONTATO,
C.CONTATO_FINANC,
       C.PROPRIETARIO, C.CPF_PROP, C.RG_PROP, C.DATA_NASC_PROP,
C.ESTADO_CIVIL_PROP,
       C.COD_CID_PROP, C.ENDERECO_PROP, C.BAIRRO_PROP,
C.RESPONSAVEL_TECNICO,
       C.CPF_RESP_TECNICO, C.RG_RESP_TECNICO, C.COD_FUNCAO, C.CONSELHO_NO,
       C.COD_DESTINO, C.COD_AREA_ATUACAO, C.COD_TIPO_AREA,
C.COD_CLASSIF_RESIDUOS,
       C.EMAIL, C.SITE, C.INICIO_CONTRATO, C.FINAL_CONTRATO,
       C.PGRSS, C.RESP_TECNICA, C.INTERVALO_COLETA, C.OBS, C.TIPO_BOMBONA,
C.FORMA_PGTO,
       C.FORMA_PGTO_ABREV, C.DIA_VENCTO,  C.VALOR_KILO,
       C.VALOR_KILO_EXCEDE, C.LIMITE_KILO, C.TAXA_RECOLHIMENTO, C.BOMBONA,
C.EXCLUIDO_POR,
       C.DATA_EXCLUSAO, C.HORA_EXCLUSAO, C.DELETADO, C.QTD_COLETAS,
C.DATA_ATUALIZACAO,
       C.COD_EDITOR, C.RAMAL, C.PESSOA_TIPO, C.ATIVO, C.TAXA_ATRASO,
C.NOME_MONTADO, C.VALOR_MENSAL, C.COD_GRUPO,   
C.COD_CLIENTE_EMPRESA, C.Proxima_Coleta, C.COD_USU_LIB_VALOR,
C.FECHA_MANUAL, C.CONTRATO_IMPRESSO, C.COM_NOTA_FISCAL,
C.COD_MASTER, C.DESCONTO_TAXA, C.TAXA_RETENCAO, C.TIPO_RETENCAO,
C.TAXA_INSS,
C.CONTRATO_RETORNADO, C.SERASA, C.CENTRAL_COBRANCA, C.INADIMPLENTE,
C.BLOQUEADO, C.DATA_ENVIO_CONTRATO, C.DATA_RETOR_CONTRATO,

C.ENDERECO_CORRESP,  C.NO_CASA_CORRESP,  C.BAIRRO_CORRESP,  C.CEP_CORRESP, 
C.COD_CIDADE_CORRESP, C.COLETA_EXTRAORDINARIA, ISOLAR_BUSCA,
C.com_comodato, C.NF_DESCRICAO, C.RAZAO_SOCIAL_NF, C.CNPJ_NF, C.INSC_NF,
C.FORMA_ENVIO_BOLETO,


(Select G.GRUPO  from GRUPO_CIDADES G where C.COD_GRUPO = G.CODIGO) AS
GRUPO,

(Select S.LOGIN from usuarios S where C.COD_USUARIO = S.Cod_usuario)AS
USUARIO,

(Select S.LOGIN from usuarios S where C.COD_EDITOR = S.Cod_usuario) AS
USUARIO_Editor,

(select min(F.Data_Coleta)from Far_Mtr F where F.cod_cliente = C.cod_cliente
) as Primeira_Coleta,

(select max(F.Data_Coleta)from Far_Mtr F where F.cod_cliente = C.cod_cliente
) as ultima_Coleta,

coalesce(
(select sum(CR.saldo) from ctarec CR where CR.COD_CLIENTE = :varCOD_CLIENTE
and CR.Pago = 'N' and CR.deletado = 'N' ),0) as TotalaPagar ,

coalesce(
(select sum(CR.VALOR + CR.VLR_JUROS + CR.DESPESAS_EXTRAS - CR.DESCONTO) from
ctarec CR where CR.COD_CLIENTE = :varCOD_CLIENTE and CR.deletado = 'N'),0)
as TotalContas ,

coalesce(
(select sum(CR.saldo) from ctarec CR where CR.COD_CLIENTE = :varCOD_CLIENTE
and CR.Pago = 'N' and CR.vencimento >= current_date and CR.deletado = 'N'
),0) as TotalAbertas,

coalesce(
(select sum(CR.saldo) from ctarec CR where CR.COD_CLIENTE = :varCOD_CLIENTE
and CR.Pago = 'N' and CR.vencimento < current_date and CR.deletado = 'N'
),0) as TotalVencidas,

coalesce(
(select Count(CR.COD_CONTA) from ctarec CR where CR.COD_CLIENTE =
:varCOD_CLIENTE and CR.Pago = 'S' and
CR.Data_Pgto <= CR.Vencimento and CR.deletado = 'N' ),0) as NoPontuais,

coalesce(
(Select count(CR.COD_CONTA) FROM Ctarec cr where
  CR.COD_CLIENTE = :varCOD_CLIENTE and CR.Pago = 'S' and CR.deletado = 'N'
),0) as NoCtasPagas,

coalesce(
(Select Count(CR.COD_CONTA) FROM Ctarec cr where
CR.COD_CLIENTE = :varCOD_CLIENTE and CR.Pago = 'S' and CR.DATA_PGTO >
CR.VENCIMENTO and CR.deletado = 'N' ),0) as NoAtrasoPorcento,

coalesce(
(select Sum(CR.DIAS_ATRASO) from Ctarec cr where
CR.COD_CLIENTE = :varCOD_CLIENTE and CR.Pago = 'S' and CR.deletado = 'N'
),0) as AtrasoDias,

coalesce(
(select count(CR.COD_CONTA) from Ctarec cr where
CR.COD_CLIENTE =  :varCOD_CLIENTE and CR.Pago = 'N' and CR.deletado = 'N'
),0) as NoCtasNaoPagas,

coalesce(
(select count(CR.COD_CONTA) from ctarec CR where CR.COD_CLIENTE =
:varCOD_CLIENTE and CR.Pago='N' and CR.vencimento >= current_date and
CR.deletado = 'N' ),0) as NoNaovencidas,

coalesce(
(select count(CR.COD_CONTA) from ctarec CR where CR.COD_CLIENTE =
:varCOD_CLIENTE and CR.Pago = 'N' and CR.vencimento < current_date and
CR.deletado = 'N' ),0) as noVencidas,

coalesce(
(select first 1(V.codigo) from valores_cliente V where V.cod_cliente =
:varCOD_CLIENTE) ,0) as COD_VALOR

from clientes C
where   C.deletado = 'N' 
   and C.COD_CLIENTE = :VarCOD_CLIENTE






Mais detalhes sobre a lista de discussão lista