[firebase-br] JOIN x LEFT JOIN

Kelver Merlotti kmerlotti em gmail.com
Qua Jul 21 08:39:25 -03 2010


Paulo, Isso não é regra.
Já tive caso de ganho de performance reduzindo o tempo de execução de
minutos para segundos, após trocar o inner join por um left outer
join.
Como o Cantu disse, só analisando o plano de execução pra definir qual
a melhor maneira em cada caso.
Abraços!

Kelver Merlotti
Coordenador Editorial do Portal www.ActiveDelphi.com.br
Contato: kelver em activedelphi.com.br
Google: kmerlotti em gmail.com
Twitter: http://twitter.com/kmerlotti
Tem um segundo? Então, dá uma olhadinha nisso:
Um site de publicidades, de Portugal, está pagando em euros (quase 3x
mais que em reais) pra quem estiver disposto a:
 * Ler anúncios
 * Visitar sites
 * Clicar em banners
 * Navegar na NET
 * Ler e-mails
 * Convidar novos usuários
O pagamento pode ser feito de várias formas!
Registra lá. Não custa nada!!! ;-)
http://www.publipt.com/pages/index.php?refid=kmerlotti



2010/7/20 Paulo (O2 Tecnologia) <paulo em o2tecnologia.com.br>:
>
>
> No caso dos LEFT JOINS o devido a não obrigatoriedade da existência da
> informção na tabela ligada, são realizados subselects afim de trazer os
> dados da tabela1 mesmo que não exista a ligação com a tabela2, quando
> utilizado o JOIN somente você esta usando o INNER JOIN, aonde a informação
> tem que haver nas duas tabelas com isso as subverificações não são
> necessárias e com isso a resposta é muito mais eficiente.
>
>
>
> Em 20/07/2010 15:54, Carlos H. Cantu escreveu:
>>
>> Compare o plano das duas pesquisas.
>>
>> []s
>> Carlos H. Cantu
>> www.FireBase.com.br - www.firebirdnews.org
>> www.warmboot.com.br - blog.firebase.com.br
>>
>> JSJ>  Tenho uma dúvida que não esta fazendo sentido.....
>>
>> JSJ>  Na junção de 2 tabelas onde a relação de registros é 1 x 1, se uso
>> Left
>> JSJ>  Join é muito mais demorado e o volume de registros lidos tambem é
>> maior
>> JSJ>  do que se usar apenas Join, não deveria ser no máximo igual pois se
>> é 1
>> JSJ>  x 1 qual a diferença, apenas se for algo do FB como trata essa
>> questão
>>
>> JSJ>  SELECT CAMPOS
>> JSJ>  FROM TABELA1
>> JSJ>  LEFT JOIN TABELA2 ON (TABELA1.CAMPO  = TABELA2.CODIGO)
>>
>> JSJ>  (* Lento e le muito mais registro TABELA1 (pelo log do ibexpert).
>>
>>
>> JSJ>  SELECT CAMPOS
>> JSJ>  FROM TABELA1
>> JSJ>  JOIN TABELA 2 ON (TABELA1.CAMPO  = TABELA2.CODIGO)
>>
>> JSJ>  (* Rápido e le muito menos registro TABELA1 (pelo log do ibexpert).
>>
>> JSJ>  O número de registros retornados é igual em ambos os casos, somente
>> a
>> JSJ>  estatistica de leitura, que ocorre na tabela1 é maior com LEFT).
>>
>>
>> ______________________________________________
>> 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
>>
>>
>> __________ Information from ESET NOD32 Antivirus, version of virus
>> signature database 5296 (20100720) __________
>>
>> The message was checked by ESET NOD32 Antivirus.
>>
>> http://www.eset.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
>




Mais detalhes sobre a lista de discussão lista