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

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


+ 1

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

> Cara, é bem complexo para tentar dar sugestões assim sem analisar à fundo,
> mas se está nesse ponto, não seria o caso de dividir o select?
>
> Algo como fazer uma query e trazer apenas alguns campos, sem os calculados,
> sem os selects internos.
> E então, sob demanda, exibir os demais...
> Sei que aumentaria a quantidade de solicitações ao servidor, mas acho que
> aliviaria muito os 6 segundos de demora do select.
>
> Acho que assim você conseguiria descobrir em quais campos a resposta está
> lenta.
>
> Alysson Gonçalves de Azevedo
> (11) 8491-7730
>
>
>

>
>
> 2012/7/11 Zottis <bzottis em ig.com.br>
>
> > … 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
> >
> >
> >
> > ______________________________________________
> > 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