Otimizar Tempo de Consulta....
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.
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
Curtidas 0
Respostas
Aroldo Zanela
11/11/2004
Colega,
Verifique a existência de índices entre as ligações e coluna de classificação.
É 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.
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
11/11/2004
Vc já tentou utilizar PacketRecords > 0 ?
GOSTEI 0