query lenta
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...
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?
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
Curtidas 0
Respostas
Emerson Nascimento
05/08/2009
a sua tabela p2 não deveria relacionar também o CPF ?
GOSTEI 0
Brainrj
05/08/2009
eu acho que não é necessario
o campo p.numref e o numero do contrato... ele é unico e ja esta vinculado ao cliente
concorda?
o campo p.numref e o numero do contrato... ele é unico e ja esta vinculado ao cliente
concorda?
GOSTEI 0
Emerson Nascimento
05/08/2009
então veja se será necessário criar índices para as tabelas...
clientes
--------
cpf, nome
prestacoes
----------
codloja, cpf, dtvenc, dtpagto, numref
lojas
-----
cod
clientes
--------
cpf, nome
prestacoes
----------
codloja, cpf, dtvenc, dtpagto, numref
lojas
-----
cod
GOSTEI 0