Otimizar Tempo de Consulta....

Delphi

11/11/2004

Pessoal,

Bom dia!
Tenho um sistema Cliente-Servidor, Desenvolvido em Delphi 7 com Interbase 6.0. Para acessar a base de Dados utilizo a paleta dbExpress.
A bronca é o seguinte...

Tabelas

Nome Qtd.Registros
======== ==========
Produtos, 20.000
Vendedores 40
Vendas, 400.000


Quando tento realizar uma consulta envolvendo as tres tabelas esta consulta passa +ou- 2 minutos para exibir os resultados...

Com a expreiência de voçês como eu poderia otimizar este tempo de consulta.


SELECT
A.NOMEVENDEDOR,
B.NOMECLIENTE,
C.CODVENDA,
C.DATAVENDA,
C.VALBRUTO,
C.DESCONTO,
C.VALTOTAL
FROM
TB_VENDEDOR A,
TB_CLIENTE B,
TB_VENDAS C
WHERE
C.CODVENDEDOR = A.CODVENDEDOR
AND
C.CODCLIENTE = B.CODCLIENTE
ORDER BY
C.CODVENDA


Grato.


Mmbarros

Mmbarros

Curtidas 0

Respostas

Aroldo Zanela

Aroldo Zanela

11/11/2004

Colega,

Verifique a existência de índices entre as ligações e coluna de classificação.

SELECT A.NOMEVENDEDOR, B.NOMECLIENTE, C.CODVENDA, C.DATAVENDA, C.VALBRUTO, C.DESCONTO, C.VALTOTAL
FROM TB_VENDEDOR A
INNER JOIN TB_VENDAS C
ON (A.CODVENDEDOR = C.CODVENDEDOR)
INNER JOIN TB_CLIENTE B
ON (C.CODCLIENTE = B.CODCLIENTE)
ORDER BY C.CODVENDA


É importante lembrar que vários fatores envolvem tunning de SQL, inclusive, o próprio hardware. No seu caso, podemos considerar que a cardinalidade entre as três tabelas e o volume de dados é considerável.


GOSTEI 0
Gilvanj

Gilvanj

11/11/2004

Vc já tentou utilizar PacketRecords > 0 ?


GOSTEI 0
POSTAR