[firebase-br] Interbase rápido x Firebird muito lento. Me ajudem com esse problema por favor.

Magno System magno em speet.com.br
Qui Maio 14 12:19:02 -03 2009


Oi Douglas, agora você me fez ficar com dúvida. Se o EXISTS executa 1 select 
para cada registro da tabela principal, no teste do email anterior, seriam 
28052 SELECT'S do EXISTS contra 1 do IN. Então como se explica o EXISTS ser 
mais rápido ??? Não é ao contrário não ???


----- Original Message ----- 
From: "Douglas Tosi" <douglasht em gmail.com>
To: "FireBase" <lista em firebase.com.br>
Sent: Thursday, May 14, 2009 11:26 AM
Subject: Re: [firebase-br]Interbase rápido x Firebird muito lento. Me ajudem 
com esse problema por favor.


2009/5/14 Magno System <magno em speet.com.br>:
> Na minha opinião, a regra é simples:
> [NOT] IN (Valor1, Valor2, ... , ValorN)
> [NOT] EXISTS (SELECT CAMPO FROM TABELA)

A exceção é quando o select interno é complexo e lento.
O IN executa este select interno uma vez só e faz comparação natural.
Já com exists o select interno tende a ser executado uma vez para cada
registro de select pai.

Ou seja, se o select interno for lento, mas retornar poucos registros,
vale mais usar o IN.
Isto tudo é claro só serve para se ter uma ideia de como iniciar. Vale
testar os dois casos e medir a diferença.

hth,
-- 
Douglas Tosi
www.sinatica.com

______________________________________________
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


--------------------------------------------------------------------------------



No virus found in this incoming message.
Checked by AVG - www.avg.com
Version: 8.0.238 / Virus Database: 270.12.27/2112 - Release Date: 05/13/09 
07:04:00





Mais detalhes sobre a lista de discussão lista