[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