[firebase-br] Select lento

Kléber Caneva kdcc em terra.com.br
Qui Ago 10 09:51:34 -03 2006


Isso realmente eu não sei.. já tinha reparado isso também...

[]´s

Kléber Caneva

----- Original Message ----- 
From: "Pablo Cunha" <cunhapablo em yahoo.com.br>
To: "FireBase" <lista em firebase.com.br>
Sent: Wednesday, August 09, 2006 4:44 PM
Subject: Re: [firebase-br] Select lento


Beleza, explicou sim, valeu, mas eu notei uma coisa, com o JOIN ele demorou
mais para retornar os registros, mas com o LEFT JOIN ele foi praticamente
instantâneo. Ai estava pensando no motivo para isso ter ocorrido, já que o
LEFT JOIN retorna até campos nulos, ele não tem que fazer muitas comparações
ao contrário do JOIN, é isso mesmo?


----- Original Message ----- 
From: "Kléber Caneva" <kdcc em terra.com.br>
To: "FireBase" <lista em firebase.com.br>
Sent: Wednesday, August 09, 2006 4:15 PM
Subject: Re: [firebase-br] Select lento


A diferença entre usar JOIN e LEFT JOIN é referente a existencia ou não de
registros no relacionamento.

Usando JOIN: Se a tabela relacionada não possuir registro ele não mostrará
os registros da tabeal aprincipal

Usando LEFT JOIN ele mostra o registro da tabela principal independente de
existir na tabela relacionada.

Ex:

TABELA A
========
PK  NOME
---  ---------
1     JOAO
2     MARIA
3     MANOEL
4     JOSE

TABELA B
========
 PK FK CARRO
1      1    GOL
2      1    CORSA
3      2    PALIO
4      4    VECTRA

Veja o seguinte Select

Select *
>From TABA a
Join TABB b on (a.PK = b.FK)

O resultado vai ser:
1     JOAO        1    1    GOL
1     JOAO        2    1    CORSA
2     MARIA      3    2   PALIO
4     JOSE          4    4   VECTRA

Observe que o MANOEL não apareceu, pq não tem um carro associado.

Agora veja este Select

Select *
>From TABA a
LEFT Join TABB b on (a.PK = b.FK)

o resultado vai ser:
1     JOAO        1    1    GOL
1     JOAO        2    1    CORSA
2     MARIA      3    2   PALIO
3     MANOEL  <null> <null> <null>
4     JOSE          4    4   VECTRA

Ele irá aparecer mesmo não possuindo um carro.

Espero que tenha conseguido explicar.

[]´s

Kléber Caneva

----- Original Message ----- 
From: "Pablo Cunha" <cunhapablo em yahoo.com.br>
To: "FireBase" <lista em firebase.com.br>
Sent: Wednesday, August 09, 2006 3:22 PM
Subject: Re: [firebase-br] Select lento


Obrigado cara, funcionou assim e ficou bem rápido, agora, eu não entendi o
uso do left join, vc pode me explicar para que ele funciona?


----- Original Message ----- 
From: "Kléber Caneva" <kdcc em terra.com.br>
To: "FireBase" <lista em firebase.com.br>
Sent: Wednesday, August 09, 2006 1:25 PM
Subject: Re: [firebase-br] Select lento


Acredito que usando o JOIN explicito seu select deva ficar assim:

Select
    p.id_produto as "Cod Prod",
    p.nm_produto as "Produto",
    cast(sum(qt_item_estoque) as Integer) as "Qtd",
    tul.sg_tipo_ul  || ' / ' || ul.qt_produto_na_embalagem  as "Tipo",
    case ie.cd_status
        when 0 then 'Excluido'
        when 1 then 'Normal'
        when 2 then 'Bloqueado'
        when 3 then 'Saindo'
        when 4 then 'Chegando'
    end as "Status",
    Upper(e.NM_DESCRICAO_END) as "Endereço"
>From endereco e
    Left Join item_estoque ie on (e.id_end = ie.id_end)
        Left Join produtos p on (ie.id_produto = p.id_produto)
        Left Join unidade_logistica ul on (ie.id_ul = ul.id_ul)
            Left Join tipo_unidade_logistica tul on (ul.id_tipo_ul =
tul.id_tipo_ul)
Where Upper(e.NM_DESCRICAO_END) like (Upper('A%'))
    and  ((e.id_tipo_end = 4) or (e.id_tipo_end = 9) )
Group by 1,2,4,5,6


[]´s

Kléber Caneva

----- Original Message ----- 
From: "Pablo Cunha" <cunhapablo em yahoo.com.br>
To: "Herivelto - SJBV" <herivelto.sj em sercon.com.br>; "FireBase"
<lista em firebase.com.br>
Sent: Wednesday, August 09, 2006 10:23 AM
Subject: Re: [firebase-br] Select lento


Herivelto, ficou muito, mas muito lento mesmo com o inner join, agora não
sei seu eu fiz o inner join corretamente, pois faz um bom tento já que eu
não o utilizo, por isso estou mandado para vc ver o final do meu Select. Tem
mais uma coisa, eu não sei como é que eu poderia fazer isso utilizando
Stored Procedure, se você puder me ajudar eu agradeço.

from
endereco e inner join item_estoque ie on (e.id_end = ie.id_end),
produtos p inner join unidade_logistica ul on (p.id_produto =
ul.id_produto),
item_estoque ie2 inner join unidade_logistica ul2 on (ie2.id_ul =
ul2.id_ul),
unidade_logistica ul3 inner join tipo_unidade_logistica tul on
(ul3.id_tipo_ul = tul.id_tipo_ul)
where
((e.id_tipo_end = 4) or (e.id_tipo_end = 9) )
group by 1,2,4,5,6



----- Original Message ----- 
From: "Herivelto - SJBV" <herivelto.sj em sercon.com.br>
To: "FireBase" <lista em firebase.com.br>
Sent: Wednesday, August 09, 2006 9:15 AM
Subject: Re: [firebase-br] Select lento


Pablo,

Sei que sua pergunta, foi sobre Stored Procedure, mas uma coisa que pode
ajudar nessa sua frase, é alterar a maneira de relacionar as tabelas,
utilizando INNER JOIN por exemplo, ja fiz testes e constatei que o JOIN
costuma ser mais rapido, e veja se está utilizando o indice correto... Mesmo
assim a Stored Procedure vai deixar mais rapido, faça o teste utilizando o
JOIN e depois coloque na Stored Procedure


----- Original Message ----- 
From: "Pablo Cunha" <cunhapablo em yahoo.com.br>
To: "FireBase" <lista em firebase.com.br>
Sent: Tuesday, August 08, 2006 6:07 PM
Subject: [firebase-br] Select lento


Caros amigo, eu tenho um select que está um bastante lento, ai me veio a
ideia de criar uma Stored Procedure, será que com ela o select irá ser
executado mais rápido? Bem eu pensei numa Stored Procedure porque tem apenas
um campo que eu mudo o valor. que é onde está o Like (que no exemplo abaixo
está com a letra A). Se for para mim fazer uma Stored Procedure, com é que
eu faria? Obrigado desde já.

Select p.id_produto as "Cod Prod",
p.nm_produto as "Produto",
cast(sum(qt_item_estoque) as Integer)as "Qtd",
tul.sg_tipo_ul  || ' / ' || ul.qt_produto_na_embalagem  as "Tipo",
case ie.cd_status
when 0 then 'Excluido'
when 1 then 'Normal'
when 2 then 'Bloqueado'
when 3 then 'Saindo'
when 4 then 'Chegando'
end as "Status",
Upper(e.NM_DESCRICAO_END) as "Endereço"
from endereco e,
item_estoque ie,
produtos p,
unidade_logistica ul,
tipo_unidade_logistica tul
where e.id_end = ie.id_end
and ie.id_produto = p.id_produto
and ie.id_ul = ul.id_ul
and ul.id_tipo_ul = tul.id_tipo_ul
and Upper(e.NM_DESCRICAO_END) like (Upper('A%'))
and ((id_tipo_end = 4) or (id_tipo_end = 9) )
group by 1,2,4,5,6
______________________________________________
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


-- 
No virus found in this incoming message.
Checked by AVG Free Edition.
Version: 7.1.405 / Virus Database: 268.10.8/414 - Release Date: 9/8/2006



_______________________________________________________
Novidade no Yahoo! Mail: receba alertas de novas mensagens no seu celular.
Registre seu aparelho agora!
http://br.mobile.yahoo.com/mailalertas/




______________________________________________
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

E-mail classificado pelo Identificador de Spam Inteligente Terra.
Para alterar a categoria classificada, visite
http://mail.terra.com.br/protected_email/imail/imail.cgi?+_u=kdcc&_l=1,1155130221.356492.21221.morondava.hst.terra.com.br,7475,Des15,Des15

Esta mensagem foi verificada pelo E-mail Protegido Terra.
Scan engine: McAfee VirusScan / Atualizado em 08/08/2006 / Versão:
4.4.00/4824
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


-- 
No virus found in this incoming message.
Checked by AVG Free Edition.
Version: 7.1.405 / Virus Database: 268.10.8/414 - Release Date: 9/8/2006



_______________________________________________________
O Yahoo! está de cara nova. Venha conferir!
http://br.yahoo.com


______________________________________________
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

E-mail classificado pelo Identificador de Spam Inteligente Terra.
Para alterar a categoria classificada, visite
http://mail.terra.com.br/protected_email/imail/imail.cgi?+_u=kdcc&_l=1,1155148887.634564.32342.vacoas.hst.terra.com.br,10361,Des15,Des15

Esta mensagem foi verificada pelo E-mail Protegido Terra.
Scan engine: McAfee VirusScan / Atualizado em 09/08/2006 / Versão:
4.4.00/4825
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


-- 
No virus found in this incoming message.
Checked by AVG Free Edition.
Version: 7.1.405 / Virus Database: 268.10.8/414 - Release Date: 9/8/2006






_______________________________________________________
Você quer respostas para suas perguntas? Ou você sabe muito e quer 
compartilhar seu conhecimento? Experimente o Yahoo! Respostas !
http://br.answers.yahoo.com/


______________________________________________
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

E-mail classificado pelo Identificador de Spam Inteligente Terra.
Para alterar a categoria classificada, visite
http://mail.terra.com.br/protected_email/imail/imail.cgi?+_u=kdcc&_l=1,1155153548.123877.29134.morondava.hst.terra.com.br,13932,Des15,Des15

Esta mensagem foi verificada pelo E-mail Protegido Terra.
Scan engine: McAfee VirusScan / Atualizado em 09/08/2006 / Versão: 
4.4.00/4825
Proteja o seu e-mail Terra: http://mail.terra.com.br/








Mais detalhes sobre a lista de discussão lista