[firebase-br] PLAN

Michel Mônaco michel.monaco em gmail.com
Qui Jul 5 17:34:58 -03 2007


Olá

Como o left join já agrupou e ordenou internamente apenas items com
localizacao válida, os subsets para os joins posteriores em cada localização
são recursivamente menores, o que gera melhor desempenho.

that´s it !

Em 05/07/07, Samuel Duarte Matos <samuelmatos em cprinformatica.com.br>
escreveu:
>
> Outra coisa a esse respeito.
>
> Se a ordem dos joins/left joins altera a performance da consulta, qual a
> "fórmula" para se montar um SQL com alta performance?
>
> Talvez isto seja uma dica para o pessoa de desenvolvimento do Firebird.
>
> T+
>
> "Kleber Caneva" <kdcc em terra.com.br> escreveu na
> mensagem news:017d01c7bf3e$0caeac40$8603a8c0 em motocana.com...
> A melhor explicação que ouvi sobre isso dizia que usando Left Join, o
> Servidor checa apenas a dependencia... enquanto o uso do join, faz com que
> ele cheque numa mão dupla.. o que aumenta o tempo.
>
> Espero que tenha conseguido explicar.
>
> []´s
>
> Kléber Caneva
>
>
> ----- Original Message -----
> From: "Samuel Duarte Matos"
> <samuelmatos em cprinformatica.com.br>
> To: <lista em firebase.com.br>
> Sent: Thursday, July 05, 2007 3:28 PM
> Subject: [firebase-br] PLAN
>
>
> Olá a todos.
>
> Me deparei com uma situação estranha.
> Vejam o seguinte
>
> Tenho uma tabela de itens. Esta tabela é ligada com uma tabela de grupos
> (not null), com uma tabela de localização de estoque(null) e com uma
> tabela
> de unidades de medida(not null).
>
> Bem, vejam o seguinte exemplo:
>
> select i.id_item,
>          i.ds_item,
>          i.id_grupo,
>         g.ds_grupo,
>         i.id_localestoque,
>         l.ds_localestoque,
>         i.id_unidademedida,
>        u.ds_unidademedida
> from item i
> join grupo g on (g.id_grupo = i.id_grupo)
> join unidademedida u on (u.id_unidademedida = i.id_unidademedida)
> left join localizacao l on (l.id_localestoque = i.id_localestoque)
>
> Até aí tudo bem, mas o que eu notei utilizando a análise de performance do
> IBExpert é que se eu colocar o left outer join ANTES dos outros dois
> joins,
> a consulta fica mais rápida.
>
> Alguem tem alguma ponderação a fazer a esse respeito?
> A ordem dos joins/left joins mudam a performance do select?
>
> Obrigado a todos
>
> Samuel
>
>
>
>
>
> Esta mensagem foi verificada pelo E-mail Protegido Terra.
> Scan engine: McAfee VirusScan / Atualizado em 05/07/2007 / Versão:
> 5.1.00/5068
> Proteja o seu e-mail Terra: http://mail.terra.com.br/
>
>
>
>
> --------------------------------------------------------------------------------
>
>
> ______________________________________________
> FireBase-BR (www.firebase.com.br) - Hospedado em www.locador.com.br
> Para editar sua configuração na lista, use o endereço
> http://mail.firebase.com.br/mailman/listinfo/lista_firebase.com.br
> Para consultar mensagens antigas: http://firebase.com.br/pesquisa
>
>
> ______________________________________________
> FireBase-BR (www.firebase.com.br) - Hospedado em www.locador.com.br
> Para editar sua configuração na lista, use o endereço
> http://mail.firebase.com.br/mailman/listinfo/lista_firebase.com.br
> Para consultar mensagens antigas: http://firebase.com.br/pesquisa
>
>
>
>
>
> ______________________________________________
> FireBase-BR (www.firebase.com.br) - Hospedado em www.locador.com.br
> Para editar sua configuração na lista, use o endereço
> http://mail.firebase.com.br/mailman/listinfo/lista_firebase.com.br
> Para consultar mensagens antigas: http://firebase.com.br/pesquisa
>



Mais detalhes sobre a lista de discussão lista