Bastos

let’s code!


Join ou não Join?

Ontem perguntei para um professor meu fera em Postgres qual a diferença entre selects com multiplas tabelas usando where e usando inner join. A resposta foi que os dois internamente podem até ser a mesma coisa dependendo da implementação do SGDB.
Então fiz um teste usando o Firebird e com a GUI IB Expert. Bem aparentemente no FB não existem diferenças, internamente é feito a mesma coisa!

Aqui o que mostra no “debugger”:

Plan
PLAN JOIN (CTP NATURAL, PSS INDEX (INTEG_230))

Adapted Plan
PLAN JOIN (CTP NATURAL, PSS INDEX (INTEG_230))

Aqui as sql que usei:

select *
from pessoas P
inner join   CATEGORIAS CT
on P.ct_codigo = CT.ct_codigo
select *
from pessoas P, CATEGORIAS CT
where P.ctp_codigo = CT.ct_codigo

Isso vem de uns papos que algumas pessoas tinham que me falavam que o inner join era mais rápido… No fim parece que tudo é a mesma coisa. Falta fazer um benchmark…

Published by Bastos, on November 8th, 2007 at 11:26 pm. Filled under: firebird, postgres, sql | 4 Comments