[firebase-br] Fwd: Select com NOT IN

Reinaldo Cesar diasmartins em gmail.com
Qui Jul 23 09:29:31 -03 2009


Vocês sabem se no IN também pode dar problemas de performance? ou 
somente no NOT IN.

Li algo que a partir do Firebird 2.0, o otimizador não utiliza indices 
quando a instrução tem IN ou NOT IN na instrução SQL.

Se for esse o Caso a troca por "OR" nos casos de campos como IN ('AB', 
'BX', 'CA') e troca por exists no caso como citado abaixo é o recomendado?

Att

Reinaldo

Magnun Oliveira escreveu:
> apos alguns testes venho aqui mostrar o resultado. fiz as pesquisas com o
> parametro cidade = 330
> 
> o primeiro SQL foi com NOT IN
> 
> select c.id_cidade, c.cidade
> from cidades c
> where c.id_cidade not in (
> select id_cidade_destino from entregas where id_cidade_origem = :cidade
> )
> 
> resultado
> 
> tempo = 42 minutos e 41 segundos
> starting memory = 12.550.188
> current memory = 13.995.740
> delta memory = 1.445.552
> number of buffers = 2048
> reads = 41.369.325
> writes = 702.440
> rows affected = 1431
> 
> o segundo SQL foi com NOT EXISTS
> 
> SELECT id_cidade, cidade
> FROM cidades c
> WHERE NOT EXISTS (SELECT first 1 NULL
> FROM entregas e
> WHERE e.id_cidade_destino = c.id_cidade and e.id_cidade_origem = :cidade)
> 
> 
> tempo = 13 segundos
> starting memory = 12.265.992
> current memory = 12.307.484
> delta memory = 41.492
> number of buffers = 2048
> reads = 16.696.820
> writes = 548.021
> rows affected = 1431
> 
> 
> obrigado a todos que ajudaram e ficam esses resultados para caso alguem
> precise de uma coisa parecida, serve como comparacao.
> 
> 
> ps: voltei o nome do campo id_cidade para id_cidade_destino na tabela
> entregas, pois havia alterado para testes
> ______________________________________________
> FireBase-BR (www.firebase.com.br) - Hospedado em www.locador.com.br
> Para saber como gerenciar/excluir seu cadastro na lista, use: http://www.firebase.com.br/fb/artigo.php?id=1107
> Para consultar mensagens antigas: http://firebase.com.br/pesquisa
> 





Mais detalhes sobre a lista de discussão lista