Joins e Processamento

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.