Fórum Como melhorar a performance do meu select? #374016
25/08/2009
0
OLá amigos,
Estou montando um select que me dê a quantidade total por produto para intervalo de dias e número de carga:
Só que esse SQL está muito lento. Como poderia melhorar sua velocidade?
Registros nas tabelas:
Produtos: 1.076
Vendas: 45.200
Itens das Vendas: 280.000
Att
Mario
Estou montando um select que me dê a quantidade total por produto para intervalo de dias e número de carga:
select produtos.codgru,produtos.codsgru,produtos.nompro, produtos.codpro,volumes.sigla as nomvol, sum(vendasi.qtd) as totalqtd from produtos ´+ Left Join vendasi on produtos.codpro =vendasi.codpro Left join vendas on vendas.pedido =vendasi.pedido Left Join volumes on produtos.codvol =volumes.codvol where vendas.carga >= :car1 and vendas.carga <= :car2 and vendas.datven >= :dat1 and vendas.datven <= :dat2 group by produtos.codgru,produtos.codsgru,produtos.nompro, produtos.codpro,nomvol order by produtos.codgru,produtos.codsgru,produtos.nompro
Só que esse SQL está muito lento. Como poderia melhorar sua velocidade?
Registros nas tabelas:
Produtos: 1.076
Vendas: 45.200
Itens das Vendas: 280.000
Att
Mario
Aldus
Curtir tópico
+ 0
Responder
Posts
25/08/2009
Emerson Nascimento
pelo numero de registros o resultado deveria ser instantâneo.
veja se não estão faltando índices. você deve criar índices para os campos de relacionamento e para aqueles que servirão de condição para suas pesquisas.
produto
---------------
codpro
codgru
codsgru
nompro
vendas
---------------
pedido
carga
datven
vendasi
---------------
pedido
codpro
volumes
---------------
codvol
outra coisa: porque você não usa o próprio campo [i:847c300b89]volumes.sigla[/i:847c300b89] ao invés do apelido [i:847c300b89]nomvol[/i:847c300b89] no agrupamento?
veja se não estão faltando índices. você deve criar índices para os campos de relacionamento e para aqueles que servirão de condição para suas pesquisas.
produto
---------------
codpro
codgru
codsgru
nompro
vendas
---------------
pedido
carga
datven
vendasi
---------------
pedido
codpro
volumes
---------------
codvol
outra coisa: porque você não usa o próprio campo [i:847c300b89]volumes.sigla[/i:847c300b89] ao invés do apelido [i:847c300b89]nomvol[/i:847c300b89] no agrupamento?
Responder
Gostei + 0
31/08/2009
Pestana_
Estou achando estranho, porque não tem muitos registros para demorar tanto, você poderia dizer quanto tempo demora para retornar os registros?
A príncipio você poderia fazer o que o [b:32fd7bf6bb]emerson[/b:32fd7bf6bb] citou, mas procure escolher o índice que seja mais eficiente no seu caso!
boa sorte!
A príncipio você poderia fazer o que o [b:32fd7bf6bb]emerson[/b:32fd7bf6bb] citou, mas procure escolher o índice que seja mais eficiente no seu caso!
boa sorte!
Responder
Gostei + 0
Clique aqui para fazer login e interagir na Comunidade :)