Fala galera, tudo bom?
então, eu tenho uma dúvida que me enche a um bom tempo.
exemplo bobo, estou com uma tabela de empresas e uma de contatos (das empresas).
Existe diferença no processamento dessas duas consultas?
[code]select campo1, campo2 from empresas, contatos where con_emp_id = emp_id
select campo1, campo2 from empresas join contatos on (con_emp_id = emp_id)
[/code]
Tenho outras dúvidas como vale a pena fazer um join a mais por uma informação ou faço duas consultas, ou também se faço um select dentro do outro ou não.
Sabem? acho que seria bacana a negada colocar umas dicas desse tipo ae pra galera.
Bele?
valeu!
Kra, isso é muito relativo
Tem muita gente que fala em aplicar a regra dos 20 vs. 80 para identificar os comandos SQL a serem otimizados (20% dos comandos SQL representam 80% do total de consumo de recursos. São esses comandos que devem ser otimizados).
A questao é testes e teste e + testes…, acho difícil alguem falar “use inner join pq SEMPRE tem desempenho melhor”…
Aqui tem um bom material: http://www.josevalter.com.br/download/sql/Construcao%20de%20Comandos.pdf
Falo!
Ola.
Cara inner join é sempre mais rapido ou no minimo igual ao 1° exemplo…Quando você faz um inner você esta buscando de cara apenas os dados que é do seu enteresse. Exe:
Select nm_empresa, nm_contato
From empresa e inner join contato c
On e.cd_empresa = c.cd_empresa
where nm_empresa like ‘C%’
A parti onde “On e.cd_empresa = c.cd_empresa” traz a busca apenas aqueles que são iguais realmente.
Enquanto que no outro exemplo vai TRAZER TODOS OS REGISTRO DAS TABELAS para depois tirar aqueles que são necessarias.
O processamento com o inner join é baixo.
Espero ter ajudado.