[firebase-br] Ordem dos INNER e LEFT - Desempenho.

Nivaldo Martins nivaldomart em gmail.com
Ter Ago 3 13:41:26 -03 2010


Olá

Essa diferença de tempo acontece por causa da ordem das tabelas.

Ex. se eu tenho uma tabela cliente com 10 registros e uma tabela pedido com
5 registros, se eu fizer left join de cliente left pedido, para cada cliente
ele vai varrer a tabela de pedidos. A diferença de registros se dá
justamente por isso também.Se você faz left join é como se vc dissesse eu
quero todos os registros da esquerda mesmo os que não tenham correspondentes
à direita. No exemplo acima, se eu fizer left join de cliente com pedido,
ele vai me retornar algo em torno de 10 registros, mas se eu fizer left de
pedidos com cliente, só me trará 5 porque são todos os registros da tabela
esquerda, mesmo que não haja correspondentes na tabela direita. Daí a
diferença de desempenho e registros retornados

Presumo que seja isso

sds

Nivaldo Martins

Em 3 de agosto de 2010 11:32, Kurt Schneider <kjundia em gmail.com> escreveu:

> Olá
>
> Sobre quantidade de dados, em alguns casos retorna apenas 5 registros,
> outros 10, no máximo 70 registros.
>
> Grato
>
>
> 2010/8/3 Daniel Roatt <danielroatt em gmail.com>
>
> > ouuuuuuuuuuu pode ser a quantidade de dados que esta sendo gerada
> >
> > Em 3 de agosto de 2010 11:21, Alysson Azevedo <agalysson em gmail.com
> > >escreveu:
> >
> > > Não tenho certeza, mas acredito que não deve ter mt a ver com a ordem
> dos
> > > joins (left e inner) em si, e sim como o firebird esta usando os
> indices
> > > para essa query...
> > >
> > > veja se é isso...
> > > --
> > >
> > > Alysson Gonçalves de Azevedo
> > > (11) 8491-7730
> > >
> > > (\(''^_^ )/)
> > >
> > > "Pobre vive dizendo que não tem nada, mas quando vem a enchente, ele
> sai
> > > gritando: -Perdi tudo!!!"
> > >
> > >
> > >
> > >
> > > Em 3 de agosto de 2010 11:14, Kurt Schneider <kjundia em gmail.com>
> > escreveu:
> > >
> > > > Prezados
> > > >
> > > > Esta semana me deparei com uma situação diferente.
> > > >
> > > > Estavamos monitorando alguns SQL de um processo bastante complexo no
> > > > sistema, que tem por objetivo montar um Extrato de Movimentações
> > Físicas
> > > de
> > > > Produtos.
> > > > Este processo envolve aproximadamente 29 Selects, unidos por Union,
> > > > envolvendo 10 tabelas distintas (nao toda para um select, mas a cada
> > > UNION,
> > > > ao menos 3 tabelas).
> > > >
> > > > Neste Selects a grande maioria é composta por INNER JOIN, mas em dois
> > > > casos,
> > > > tive que usar INNER e LEFT, nesta ordem, logo após o FROM.
> > > >
> > > > SELECT
> > > >   ...
> > > > FROM TAB_A
> > > > INNER JOIN ...
> > > > INNER JOIN ...
> > > > LEFT JOIN ...
> > > > LEFT JOIN ...
> > > >
> > > > WHERE ..
> > > > AND ..
> > > >
> > > > O Tempo desta consulta esta em 45 Segundos.
> > > >
> > > > Trocamos a ordem do INNER / LEFT para LEFT /  INNER ficando assim, a
> > > > consulta:
> > > > SELECT
> > > >   ...
> > > > FROM TAB_A
> > > > LEFT JOIN ...
> > > > LEFT JOIN ...
> > > > INNER JOIN ...
> > > > INNER JOIN ...
> > > > WHERE ..
> > > > AND ..
> > > >
> > > > O Tempo de resposta passou para 3 segundos.
> > > > O Firebird usado é 1.5.4...
> > > >
> > > > Gostaria de entender esta situação.
> > > >
> > > > Atenciosamente
> > > >
> > > >
> > > > --
> > > > PS: Troquei meu Número de Celular - 49 9148 4809
> > > >
> > > >
> > > >
> > >
> >
> ************************************************************************************
> > > > Kurt Schneider - [ Gerente de Projetos ]
> > > > ControlSoft - Assessoria e Desenvolvimento de Sistemas
> > > > Fones.: Chapecó/SC 49 3329 1878
> > > >            Sorriso/MT    66 3544 4364
> > > >            Celular          49 9148 4809 SC
> > > >                                66 9903 4958 MT
> > > > E-mail: kjundia em gmail.com / kurt em controlsoft.com.br
> > > > msn...: kjundia em hotmail.com / skype.: kjundia
> > > > "Quis custodiet ipsos custodes?" - Satirás - De Juvenal
> > > > ______________________________________________
> > > > 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
> > > >
> > > ______________________________________________
> > > 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
> > >
> >
> >
> >
> > --
> > Daniel Roatt
> > Cel: (19) 9174-3113
> > TI Bessani Softwares -http://www.bessani.com.br/
> > ______________________________________________
> > 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
> >
>
>
>
> --
>  PS: Troquei meu Número de Celular - 49 9148 4809
>
>
> ************************************************************************************
> Kurt Schneider - [ Gerente de Projetos ]
> ControlSoft - Assessoria e Desenvolvimento de Sistemas
> Fones.: Chapecó/SC 49 3329 1878
>            Sorriso/MT    66 3544 4364
>            Celular          49 9148 4809 SC
>                                66 9903 4958 MT
> E-mail: kjundia em gmail.com / kurt em controlsoft.com.br
> msn...: kjundia em hotmail.com / skype.: kjundia
> "Quis custodiet ipsos custodes?" - Satirás - De Juvenal
> ______________________________________________
> 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