Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

zoeira

Pesquisa com NOT IN muito lenta

Recommended Posts

Pessoal,

 

Possuo duas tabelas: produtos (2414 registros) e movimentacao (14426 registros).

 

Preciso pesquisar os produtos que não sofreram movimentação de acordo com o período selecionado. Para isso, criei:

 

SELECT prod_nome, prod_cod FROM produtos 
	WHERE prod_cod 
				NOT IN
			(SELECT mov_prodID FROM movimentacao WHERE mov_data >= '2008-10-06' AND mov_data <= '2008-10-07')

 

O problema que esta consulta está muito lenta e sempre trava.

 

Existe alguma maneira de melhorar esta consulta ou trabalhar com outra lógica?

 

 

Agradeço desde já a colaboração de todos.

Compartilhar este post


Link para o post
Compartilhar em outros sites

quais sao as estruturas das tabelas?

Compartilhar este post


Link para o post
Compartilhar em outros sites

primeiro mude

WHERE mov_data >= '2008-10-06' AND mov_data <= '2008-10-07'

para

WHERE mov_data NOT BETWEEN '2008-10-06' AND '2008-10-07'

 

depois coloque um index em mov_data,mov_prodID e prod_cod

Compartilhar este post


Link para o post
Compartilhar em outros sites

Tente

 

SELECT prod_nome, prod_cod FROM produtos , movimentacao 
	WHERE produtos.prod_cod = movimentacao.mov_prodID
	AND movimentacao.mov_data BETWEEN  '2008-10-06' AND mov_data <= '2008-10-07'

Creio ser mais rápido

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.