[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