Bom dia pessoal, tudo blza???
Seguinte, eu estou construindo uma aplicação de busca e preciso fazer um JOIN em duas tabelas. O que acontece é que fiquei com uma dúvida:
USAR JOIN ou NÃO, o que é Mais performático???
EX.
[i]
SELECT ITEM FROM TABELA1 A, TABELA2 B
WHERE A.ITEM = B.ITEM[/i]
OU
SELECT ITEM FROM TABELA1 A
JOIN TABELA2 B ON A.ITEM = B.ITEM
É obvio que os dois funcionam e fazem a mesma coisa, o que queria saber é qual dos casos funcionaria de maneira mais PERFORMATICA NO ORACLE e o pq!
Sempre achei que o JOIN era a melhor maneira, agora só gostaria de uma explicação mais tecnica!
Se alguem puder ajudar ae!
Abraços!
Me avisem se eu estiver errado, mas acho que o tempo de execução da sua query vai ser o mesmo. O que pode ser afetado é o tempo que o Oracle vai levar para transformar a query que vc escreveu no plano de execução dele (a.k.a. fazer o parse da sua query), que na verdade é algo insignificante... Acho que o melhor cuidado que vc pode é usar PreparedStatement para garantir que o Oracle só vá criar o plano de execução uma vez.
Abs
Os dois comandos que você apresentou são variações sintáticas do mesmo comando (a primeira é a versão antiga e a segunda é a versão moderna, compatível com ANSI-SQL), e levam o mesmo tempo para executar.
Em vez de se preocupar com essas coisas, verifique:
- Se o plano de execução está correto (isso pode ser visto com alguma ferramenta do Oracle)
- Se há índices adequados para essas tabelas
- Se as chaves primárias estão adequadas
etc.
[quote=thingol]Os dois comandos que você apresentou são variações sintáticas do mesmo comando (a primeira é a versão antiga e a segunda é a versão moderna, compatível com ANSI-SQL), e levam o mesmo tempo para executar.
Em vez de se preocupar com essas coisas, verifique:
- Se o plano de execução está correto (isso pode ser visto com alguma ferramenta do Oracle)
- Se há índices adequados para essas tabelas
- Se as chaves primárias estão adequadas
etc.
[/quote]
Lega, muito obrigado pela ajuda!
Era exatamente isso que eu queria fazer… e eu usei o explain do sqldeveloper para verificar o plano de execução e esses lances de indices e talz!
Muito obrigado mesmo!
Abraços!