Fórum query lenta #60770

05/08/2009

0

olá pessoal... estou com problema em uma query aqui... quando o software foi desenvolvido e a base de dados era pequena, a query rodava numa boa... mas tem um cliente agora com a base enorme... e quando puxo esse relatório, o sistema trava...

select C.CPF, C.NUM_CARTAO, C.NOME, C.ENDER, C.BAIRRO, C.CIDADE, C.UF, C.CEP, 
C.TEL1, C.TEL2, C.TELC, C.TEL1EMP, sum(P.VLRPREST) as vlrprest
from CLIENTES C, PRESTACOES P, LOJAS L  
where C.CPF = P.CPF and P.CODLOJA in (25) and L.COD = P.CODLOJA and P.DTPAGTO is null
and P.DTVENC >= :DTVENCINICIO and P.DTVENC <= :DTVENCFINAL 

and NOT EXISTS (select P2.CODLOJA from PRESTACOES P2 where P2.CODLOJA = P.CODLOJA 
and P2.NUMREF = P.NUMREF and P2.DTPAGTO is null and P2.DTVENC < P.DTVENC)

group by C.CPF, C.NUM_CARTAO, C.NOME, C.ENDER, C.BAIRRO, C.CIDADE, C.UF, C.CEP,
C.TEL1, C.TEL2, C.TELC, C.TEL1EMP order by C.NOME


o que deixa lento e o NOT EXISTS pois busca a tabela toda a cada registro que consulta

alquem sabe como posso melhorar essa query?


Brainrj

Brainrj

Responder

Posts

05/08/2009

Emerson Nascimento

a sua tabela p2 não deveria relacionar também o CPF ?


Responder

Gostei + 0

05/08/2009

Brainrj

eu acho que não é necessario
o campo p.numref e o numero do contrato... ele é unico e ja esta vinculado ao cliente

concorda?


Responder

Gostei + 0

05/08/2009

Emerson Nascimento

então veja se será necessário criar índices para as tabelas...

clientes
--------
cpf, nome

prestacoes
----------
codloja, cpf, dtvenc, dtpagto, numref

lojas
-----
cod


Responder

Gostei + 0

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.

Aceitar