Sérgio

Acrescentando ao que você já explicou, a própria documentação do Oracle
recomenda o uso do novo padrão ANSI para joins.

Sobre performance, não cheguei a verificar a fundo, mas em pequenos testes
vi que aparentemente foram gerados planos de acesso diferentes (sem usar um
ORDER BY, a ordem das linhas foi diferente).

[ ]

André


Em 07/02/07, Sérgio Yuassa (FUSAN) <[EMAIL PROTECTED]> escreveu:
>
>   A Oracle era uma das únicas que ainda não tinha o padrão Ansi 92(acho
> que é essa a versão),
> utilizando o join. A partir da versão 9, ela implementou esse padrão.
>
> Vc utilizando o outer join antigo(+), por exemplo, não conseguia fazer um
> full outer join
> (aquela condição que vc pode ter null em uma tabela e/ou null em outra e
> vc quer trazer os dados
> de ambas, mesmo que seja null).
>
> E se vc tivesse mais de 1 coluna na condição where, teria que ir colocando
> o (+) em cada um.
>
> No começo eu só conhecia o join do Oracle, e algumas vezes fiz o join no
> Visual Fox ou no Access, mas
> ainda não entendia como funcionava.
>
> Depois da versão 9 do Oracle, resolvi que iria aprender. Realmente no
> começo parece mais difícil,
> mas depois vc nota que ele dá mais um pouco de trabalho para escrever as
> cláusulas, mas é MUITO mais
> flexível e vc consegue fazer coisas com ele que com o (+) não conseguiria.
>
> Sobre a questão da performance não sei como ficou, mas num curso do Oracle
> o professor disse que
> seriam equivalentes.
>
> Então hoje eu faço tudo com o Ansi 92, mesmo que seja com um inner join,
> pois se for para mudar
> para outer join é fácil de mudar. Além do que, os outros BD usam assim. Se
> for para vc portar para
> outro BD, basta mudar pouca coisa.
>
> -----Mensagem Original-----
> De: pso_ura
> Para: oracle_br@yahoogrupos.com.br <oracle_br%40yahoogrupos.com.br>
> Enviada em: terça-feira, 6 de fevereiro de 2007 19:14
> Assunto: [oracle_br] Duvida sobre utilizar inner join ou Where
>
> Lista
>
> Gostaria de saber qual a melhor maneira de se montar uma
> select.
>
> Utilizar o inner join ou a clausula Where.
>
> Exemplo
>
> SELECT
> Eo.Curso, Eo.Curriculo, Eo.Oferta, EO.Etapa, Eo.Inicio,
> termino, inicio, ano_inicio, Mes_termino, Ano_termino,
> NR_parcelas,OP.Polo
> FROM
> etapas_ofertas EO inner join ofertas_polos OP ON
> (EO.curso = OP.curso AND Eo.Curriculo = OP.Curriculo AND
> EO.Oferta = OP.oferta)
>
> eu usaria
>
> SELECT
> Eo.Curso, Eo.Curriculo, Eo.Oferta, EO.Etapa, Eo.Inicio,
> termino, inicio, ano_inicio, Mes_termino, Ano_termino,
> NR_parcelas,OP.Polo
> FROM
> etapas_ofertas EO
> ofertas_polos OP ON
> where
> EO.curso = OP.curso AND
> Eo.Curriculo = OP.Curriculo AND
> EO.Oferta = OP.oferta
>
> Qual o melhor?
>
> Ja tive experiencias com o ACCESS acessando o Oracle, tivemos que
> mudar tudo.
>
> Grato
>
> [As partes desta mensagem que não continham texto foram removidas]
>
> 
>


[As partes desta mensagem que não continham texto foram removidas]

Responder a