Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Luan Santos

Query muito lenta

Recommended Posts

Pessoal,

 

alguém poderia me ajudar a otimizar esta query?

 

SELECT C.NPG,N.DEM,N.DEN,C.DVC,C.DPG,N.VNE,C.VTT,
C.CMT,C.NTT,L.DRF,C.CRD,C.LPG,C.RPG,P.NOME,C.DSY,C.ST,C.LEST,
CASE @RZS_NF WHEN 0 THEN ISNULL(F.RZS,R.RZS) WHEN 1 THEN E.DESCRICAO END DESCRICAO,
Z.DESCRICAO NATUREZA,C.VIRRF,C.VINSS,C.VPIS,C.VCOFINS,C.VCSLL,C.VISS,C.VPCC,(ISNULL(C.VLD,0)+ISNULL(C.GLS,0)+ISNULL((SELECT SUM (CC.VTT) FROM CONTAS_PAGAR CC WHERE CC.NPG_ADIANT=C.NPG),0)) DESCONTO,
((DATEDIFF(DAY,ISNULL(L.DRF,0),ISNULL(C.DPG,0))*ISNULL(C.JMR,0))+ISNULL(C.MLT,0)+ISNULL(C.TXC,0)) ACRE,
(C.VTT-(ISNULL(C.VLD,0)+ISNULL(C.GLS,0)+ISNULL(C.VIRRF,0)+ISNULL(C.VINSS,0)+ISNULL(C.VPIS,0)+ISNULL(C.VCOFINS,0)+ISNULL(C.VCSLL,0)+ISNULL(C.VISS,0)+ISNULL(C.VPCC,0))+
((DATEDIFF(DAY,ISNULL(L.DRF,0),ISNULL(C.DPG,0))*ISNULL(C.JMR,0))+ISNULL(C.MLT,0)+ISNULL(C.TXC,0))) VPGLIQ,
C.NPL,(SELECT COUNT(*) FROM CONTAS_PAGAR PP WHERE PP.NE=C.NE GROUP BY PP.NE) PARC
FROM  EORG E,PESSOA_FISICA P,NOTA_ENTRADA_NATUREZAS Z,CONTAS_PAGAR C
LEFT JOIN LANCAMENTOS_CONTABEIS L ON C.LPG=L.NLC,
NOTA_ENTRADA N
LEFT JOIN FORNECEDORES F ON N.FRN=F.EORG 
LEFT JOIN RECURSOS R ON N.FRN=R.EORG
WHERE C.EMP=@REC AND E.EORG=C.CRD AND N.NE=C.NE AND P.NPF=C.USR AND C.DVC>@DE AND C.DVC<@ATE AND ISNULL(C.ID_SIT,1)=1 AND Z.NZE=N.NZE
AND N.FRN=CASE WHEN @FRN=0 THEN N.FRN ELSE @FRN END

 

já tentei bastante coisa e não resolveu muita coisa.

 

[]'s

Compartilhar este post


Link para o post
Compartilhar em outros sites

A primeira coisa seria você organizar os joins destas tabelas que estão listadas no seu from....

 

   EORG E,PESSOA_FISICA P,NOTA_ENTRADA_NATUREZAS Z,CONTAS_PAGAR C

Em seguida, verificar se os índices estão criados para os campos usados nos seus filtros do where e nos usados para relacionar as tabelas entre si... creio que isso já deve ajudar a melhorar a performance da sua consulta.

 

[]'s

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.