[firebase-br] RES: Query muito lenta!!! Parte III
Zottis
bzottis em ig.com.br
Qua Jul 11 13:01:45 -03 2012
Obrigado pelas respostas
-----Mensagem original-----
De: lista-bounces em firebase.com.br [mailto:lista-bounces em firebase.com.br] Em
nome de Alysson Gonçalves de Azevedo
Enviada em: quarta-feira, 11 de julho de 2012 11:45
Para: FireBase
Assunto: Re: [firebase-br] Query muito lenta!!! Parte III
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
Mais detalhes sobre a lista de discussão lista