Re: [oracle_br] Re: Performance no Oracle com SQL ANSI
Mestre Chiappa Eu não tenho acesso ao Metalink... mas no trecho que você transcreveu (pode ter passado algo despercebido para mim) está: This issue is fixed in * 10.2.0.4 (Server Patch Set) * 11g (Future version) Ou seja, "Este problema está corrigido em"... e ainda cita a versão 11g como "futura" (dando a idéia que essa nota era antiga). Por isso é que conclui que já havia sido corrigida. Porém como você disse que o patch 10.2.0.4 ainda não foi lançado --- e sei que você não costuma falar sem fundamento ;^) --- pesquisei um pouco pelo Google e vi que realmente este a liberação deste patch estava prevista para o final de 2007 ou início de 2008. Obrigado pelo esclarecimento !!! [ ] André Em 21/11/07, jlchiappa <[EMAIL PROTECTED]> escreveu: > A frase é "PROVAVELMENTE ESTARÃO CORRIGIDOS", e não "estão", pois como > a nota mesmo diz o patch 10.2.0.4 é futuro ainda, não existe ainda... > > []s > > Chiappa > > --- Em oracle_br@yahoogrupos.com.br , > "Andre Santos" > <[EMAIL PROTECTED]> escreveu > > > > Chiappa > > > > Muito obrigado pela informação! É sempre bom ter em mente que, > dependendo da > > versão/release, podem haver bugs. > > > > Mas, esses específicos que você citou, estão corrigidos a partir da > versão > > 10.2.0.4, certo? (pelo menos, foi o que a nota menciona). > > > > Valeu! > > > > [ ] > > > > André > > > > > > Em 21/11/07, jlchiappa <[EMAIL PROTECTED]> escreveu: > > > > > > Só acrescento que : > > > > > > a) a recomendação do manual ** não é ** por causa de performance, veja > > > lá que nas razões, são citadas a melhor legibilidade da sintaxe ANSI, > > > features que são mais difíceis de imitar na sintaxe tradicional (como > > > FULL OUTER JOINs, OUTER JOIN da mesma tabela com várias outras, etc) > > > > > > e > > > > > > b) a pessoa ** TEM QUE VER ** se dá pra se usar a sintaxe ANSI no caso > > > dela : por ser mais nova, ainda há mais de um bug sendo resolvido pra > > > elas. Falando de 10g, de cara temos os seguintes bugs abertos (nota > > > 401436.1 Subject: 10.2.0.4 Patch Set - List of Bug Fixes by Problem > > > Type) : > > > > > > ANSI Joins > > > 4204383 Dump [kkqtnlocbk] optimizing ANSI OUTER JOINs with subqueries > > > 4702830 OERI[kkoljt1] when using star transformation with an ANSI > > > outer join > > > 4901291 Wrong results with left outer joins on view with a function > > > 5188321 wrong results (no rows) from ANSI outer join > > > 5590396 Dump or Wrong Results with ANSI JOINS and CONNECT BY > > > 5765958 OERI[qcscpqbTxt] / OERI[qcsfbdnp:1] from ANSI query in PLSQL > > > 5964193 OERI[kkqsRewriteCorrCols-1] during query rewrite with ANSI > joins > > > 5988085 Dump [kkodsel] from STAR transformation with ANSI view > > > > > > ==> o bug 5188321, por exemplo, é explícito : > > > > > > Bug 5188321 wrong results (no rows) from ANSI outer join > > > > > > This note gives a brief overview of bug 5188321. > > > Affects: > > > > > > Product (Component) Oracle Server (Rdbms) > > > Range of versions believed to be affected Versions < 11 > > > Versions confirmed as being affected > > > > > > * 9.2.0.7 > > > * 9.2.0.8 > > > * 10.1.0.5 > > > > > > Platforms affected Generic (all / most platforms affected) > > > > > > Fixed: > > > > > > This issue is fixed in > > > > > > * 10.2.0.4 (Server Patch Set) > > > * 11g (Future version) > > > > > > Symptoms: > > > > > > Related To: > > > > > > * Wrong Results > > > * ANSI Joins > > > > > > Description > > > > > > Wrong results can be returned with a query involving a very large > > > select > > > list count when ANSI OUTER JOIN syntax is used. > > > > > > Workaround: > > > Use native oracle outer join syntax > > > or > > > reduce the select list count. > > > > > > ==> ou seja, não há patch e o workaround é usar a boa e velha sintaxe > > > nativa Então pra mim, que manipulo sempre grandes volumes, vcs > > > podem imaginar ser seguríssimo apostar um picolé de limão que ** VAI > > > ** demorar um pouquinho pra eu começar a me preocupar com sintaxe > ANSI... > > > > > > []s > > > > > > Chiappa > > > > > > --- Em oracle_br@yahoogrupos.com.br > > > , > > > "Andre Santos" > > > escreveu > > > > > > > > Alisson > > > > > > > > Foi na documentação do Oracle9i Database: > > > > - SQL Reference > > > > - Joins > > > > < > > > > > > > > > > > > http://download.oracle.com/docs/cd/B10501_01/server.920/a96540/queries7.htm#2054014 > > > > > > > > > > > > > Mas a recomendação permanece na documentação da versão mais > atual (11g): > > > > < > > > > > > > > > > > > http://download.oracle.com/docs/cd/B28359_01/server.111/b28286/queries006.htm#sthref3238 > > > > > > > > > > > > > [ ] > > > > > > > > André > > > > > > > > > > > > Em 16/11/07, Alisson Aguiar escreveu: > > > > > > > > > > Beleza, André. Obrigado pela informação. > > > > > > > > > > Só para complementar, você tem o link da fonte essa > informação? É o > > > > > manual, > > > > > White Paper, etc. ? Gostaria de apresentar essa informação > (Oracle), > > > > > juntamente com outra
[oracle_br] Re: Performance no Oracle com SQL ANSI
A frase é "PROVAVELMENTE ESTARÃO CORRIGIDOS", e não "estão", pois como a nota mesmo diz o patch 10.2.0.4 é futuro ainda, não existe ainda... []s Chiappa --- Em oracle_br@yahoogrupos.com.br, "Andre Santos" <[EMAIL PROTECTED]> escreveu > > Chiappa > > Muito obrigado pela informação! É sempre bom ter em mente que, dependendo da > versão/release, podem haver bugs. > > Mas, esses específicos que você citou, estão corrigidos a partir da versão > 10.2.0.4, certo? (pelo menos, foi o que a nota menciona). > > Valeu! > > [ ] > > André > > > Em 21/11/07, jlchiappa <[EMAIL PROTECTED]> escreveu: > > > > Só acrescento que : > > > > a) a recomendação do manual ** não é ** por causa de performance, veja > > lá que nas razões, são citadas a melhor legibilidade da sintaxe ANSI, > > features que são mais difíceis de imitar na sintaxe tradicional (como > > FULL OUTER JOINs, OUTER JOIN da mesma tabela com várias outras, etc) > > > > e > > > > b) a pessoa ** TEM QUE VER ** se dá pra se usar a sintaxe ANSI no caso > > dela : por ser mais nova, ainda há mais de um bug sendo resolvido pra > > elas. Falando de 10g, de cara temos os seguintes bugs abertos (nota > > 401436.1 Subject: 10.2.0.4 Patch Set - List of Bug Fixes by Problem > > Type) : > > > > ANSI Joins > > 4204383 Dump [kkqtnlocbk] optimizing ANSI OUTER JOINs with subqueries > > 4702830 OERI[kkoljt1] when using star transformation with an ANSI > > outer join > > 4901291 Wrong results with left outer joins on view with a function > > 5188321 wrong results (no rows) from ANSI outer join > > 5590396 Dump or Wrong Results with ANSI JOINS and CONNECT BY > > 5765958 OERI[qcscpqbTxt] / OERI[qcsfbdnp:1] from ANSI query in PLSQL > > 5964193 OERI[kkqsRewriteCorrCols-1] during query rewrite with ANSI joins > > 5988085 Dump [kkodsel] from STAR transformation with ANSI view > > > > ==> o bug 5188321, por exemplo, é explícito : > > > > Bug 5188321 wrong results (no rows) from ANSI outer join > > > > This note gives a brief overview of bug 5188321. > > Affects: > > > > Product (Component) Oracle Server (Rdbms) > > Range of versions believed to be affected Versions < 11 > > Versions confirmed as being affected > > > > * 9.2.0.7 > > * 9.2.0.8 > > * 10.1.0.5 > > > > Platforms affected Generic (all / most platforms affected) > > > > Fixed: > > > > This issue is fixed in > > > > * 10.2.0.4 (Server Patch Set) > > * 11g (Future version) > > > > Symptoms: > > > > Related To: > > > > * Wrong Results > > * ANSI Joins > > > > Description > > > > Wrong results can be returned with a query involving a very large > > select > > list count when ANSI OUTER JOIN syntax is used. > > > > Workaround: > > Use native oracle outer join syntax > > or > > reduce the select list count. > > > > ==> ou seja, não há patch e o workaround é usar a boa e velha sintaxe > > nativa Então pra mim, que manipulo sempre grandes volumes, vcs > > podem imaginar ser seguríssimo apostar um picolé de limão que ** VAI > > ** demorar um pouquinho pra eu começar a me preocupar com sintaxe ANSI... > > > > []s > > > > Chiappa > > > > --- Em oracle_br@yahoogrupos.com.br , > > "Andre Santos" > > escreveu > > > > > > Alisson > > > > > > Foi na documentação do Oracle9i Database: > > > - SQL Reference > > > - Joins > > > < > > > > > > > http://download.oracle.com/docs/cd/B10501_01/server.920/a96540/queries7.htm#2054014 > > > > > > > > > > Mas a recomendação permanece na documentação da versão mais atual (11g): > > > < > > > > > > > http://download.oracle.com/docs/cd/B28359_01/server.111/b28286/queries006.htm#sthref3238 > > > > > > > > > > [ ] > > > > > > André > > > > > > > > > Em 16/11/07, Alisson Aguiar escreveu: > > > > > > > > Beleza, André. Obrigado pela informação. > > > > > > > > Só para complementar, você tem o link da fonte essa informação? É o > > > > manual, > > > > White Paper, etc. ? Gostaria de apresentar essa informação (Oracle), > > > > juntamente com outras que coletei. > > > > > > > > Abraço, > > > > Alisson > > > > > > > > Em 16/11/07, Andre Santos > > > > > > > escreveu: > > > > > > > > > > Alisson > > > > > > > > > > A própria Oracle recomenda que se use a sintaxe mais moderna (atual > > > > padrão > > > > > ANSI), em vez do antigo operador (+): > > > > > > > > > > Oracle Corporation recommends that you use the FROM clause OUTER > > JOIN > > > > > syntax > > > > > rather than the Oracle join operator. Outer join queries that > > use the > > > > > Oracle > > > > > join operator (+) are subject to the following rules and > > restrictions, > > > > > which > > > > > do not apply to the FROM clause join syntax: > > > > > (...) > > > > > > > > > > > > > > > Poderia citar umas boas razões para adotar a sintaxe atualizada, > > mas a > > > > > questão é sobre performance... no momento, vou no palpite. :^) > > > > > Algumas vezes, quando fiz um outer join na sintaxe "antiga" e depois > > > > refiz > > > > > na sintaxe "atual", notei que a ordenação do conjunto de linhas foi > > > > > diferente... daí
Re: [oracle_br] Re: Performance no Oracle com SQL ANSI
Chiappa Muito obrigado pela informação! É sempre bom ter em mente que, dependendo da versão/release, podem haver bugs. Mas, esses específicos que você citou, estão corrigidos a partir da versão 10.2.0.4, certo? (pelo menos, foi o que a nota menciona). Valeu! [ ] André Em 21/11/07, jlchiappa <[EMAIL PROTECTED]> escreveu: > > Só acrescento que : > > a) a recomendação do manual ** não é ** por causa de performance, veja > lá que nas razões, são citadas a melhor legibilidade da sintaxe ANSI, > features que são mais difíceis de imitar na sintaxe tradicional (como > FULL OUTER JOINs, OUTER JOIN da mesma tabela com várias outras, etc) > > e > > b) a pessoa ** TEM QUE VER ** se dá pra se usar a sintaxe ANSI no caso > dela : por ser mais nova, ainda há mais de um bug sendo resolvido pra > elas. Falando de 10g, de cara temos os seguintes bugs abertos (nota > 401436.1 Subject: 10.2.0.4 Patch Set - List of Bug Fixes by Problem > Type) : > > ANSI Joins > 4204383 Dump [kkqtnlocbk] optimizing ANSI OUTER JOINs with subqueries > 4702830 OERI[kkoljt1] when using star transformation with an ANSI > outer join > 4901291 Wrong results with left outer joins on view with a function > 5188321 wrong results (no rows) from ANSI outer join > 5590396 Dump or Wrong Results with ANSI JOINS and CONNECT BY > 5765958 OERI[qcscpqbTxt] / OERI[qcsfbdnp:1] from ANSI query in PLSQL > 5964193 OERI[kkqsRewriteCorrCols-1] during query rewrite with ANSI joins > 5988085 Dump [kkodsel] from STAR transformation with ANSI view > > ==> o bug 5188321, por exemplo, é explícito : > > Bug 5188321 wrong results (no rows) from ANSI outer join > > This note gives a brief overview of bug 5188321. > Affects: > > Product (Component) Oracle Server (Rdbms) > Range of versions believed to be affected Versions < 11 > Versions confirmed as being affected > > * 9.2.0.7 > * 9.2.0.8 > * 10.1.0.5 > > Platforms affected Generic (all / most platforms affected) > > Fixed: > > This issue is fixed in > > * 10.2.0.4 (Server Patch Set) > * 11g (Future version) > > Symptoms: > > Related To: > > * Wrong Results > * ANSI Joins > > Description > > Wrong results can be returned with a query involving a very large > select > list count when ANSI OUTER JOIN syntax is used. > > Workaround: > Use native oracle outer join syntax > or > reduce the select list count. > > ==> ou seja, não há patch e o workaround é usar a boa e velha sintaxe > nativa Então pra mim, que manipulo sempre grandes volumes, vcs > podem imaginar ser seguríssimo apostar um picolé de limão que ** VAI > ** demorar um pouquinho pra eu começar a me preocupar com sintaxe ANSI... > > []s > > Chiappa > > --- Em oracle_br@yahoogrupos.com.br , > "Andre Santos" > <[EMAIL PROTECTED]> escreveu > > > > Alisson > > > > Foi na documentação do Oracle9i Database: > > - SQL Reference > > - Joins > > < > > > > http://download.oracle.com/docs/cd/B10501_01/server.920/a96540/queries7.htm#2054014 > > > > > > > Mas a recomendação permanece na documentação da versão mais atual (11g): > > < > > > > http://download.oracle.com/docs/cd/B28359_01/server.111/b28286/queries006.htm#sthref3238 > > > > > > > [ ] > > > > André > > > > > > Em 16/11/07, Alisson Aguiar <[EMAIL PROTECTED]> escreveu: > > > > > > Beleza, André. Obrigado pela informação. > > > > > > Só para complementar, você tem o link da fonte essa informação? É o > > > manual, > > > White Paper, etc. ? Gostaria de apresentar essa informação (Oracle), > > > juntamente com outras que coletei. > > > > > > Abraço, > > > Alisson > > > > > > Em 16/11/07, Andre Santos > <[EMAIL PROTECTED]> > > > escreveu: > > > > > > > > Alisson > > > > > > > > A própria Oracle recomenda que se use a sintaxe mais moderna (atual > > > padrão > > > > ANSI), em vez do antigo operador (+): > > > > > > > > Oracle Corporation recommends that you use the FROM clause OUTER > JOIN > > > > syntax > > > > rather than the Oracle join operator. Outer join queries that > use the > > > > Oracle > > > > join operator (+) are subject to the following rules and > restrictions, > > > > which > > > > do not apply to the FROM clause join syntax: > > > > (...) > > > > > > > > > > > > Poderia citar umas boas razões para adotar a sintaxe atualizada, > mas a > > > > questão é sobre performance... no momento, vou no palpite. :^) > > > > Algumas vezes, quando fiz um outer join na sintaxe "antiga" e depois > > > refiz > > > > na sintaxe "atual", notei que a ordenação do conjunto de linhas foi > > > > diferente... daí suponho que o "plano de execução" deve ter sido um > > > pouco > > > > diferente também. > > > > Já que a Oracle recomenda a sintaxe mais moderna, suponho que a > > > > "tendência" > > > > seja que o otimizador seja cada vez mais voltado a isso. > > > > > > > > Mas, para tirar qualquer dúvida, seria bom montar um teste (não > trivial, > > > > com > > > > tabelas grandes) e verificar os tempos de resposta e os planos > de acesso > > > > gerados. > > > > > > > > [ ] > > > > > > > > André > > > > > > > > Em
[oracle_br] Re: Performance no Oracle com SQL ANSI
Só acrescento que : a) a recomendação do manual ** não é ** por causa de performance, veja lá que nas razões, são citadas a melhor legibilidade da sintaxe ANSI, features que são mais difíceis de imitar na sintaxe tradicional (como FULL OUTER JOINs, OUTER JOIN da mesma tabela com várias outras, etc) e b) a pessoa ** TEM QUE VER ** se dá pra se usar a sintaxe ANSI no caso dela : por ser mais nova, ainda há mais de um bug sendo resolvido pra elas. Falando de 10g, de cara temos os seguintes bugs abertos (nota 401436.1 Subject: 10.2.0.4 Patch Set - List of Bug Fixes by Problem Type) : ANSI Joins 4204383 Dump [kkqtnlocbk] optimizing ANSI OUTER JOINs with subqueries 4702830 OERI[kkoljt1] when using star transformation with an ANSI outer join 4901291 Wrong results with left outer joins on view with a function 5188321 wrong results (no rows) from ANSI outer join 5590396 Dump or Wrong Results with ANSI JOINS and CONNECT BY 5765958 OERI[qcscpqbTxt] / OERI[qcsfbdnp:1] from ANSI query in PLSQL 5964193 OERI[kkqsRewriteCorrCols-1] during query rewrite with ANSI joins 5988085 Dump [kkodsel] from STAR transformation with ANSI view ==> o bug 5188321, por exemplo, é explícito : Bug 5188321 wrong results (no rows) from ANSI outer join This note gives a brief overview of bug 5188321. Affects: Product (Component) Oracle Server (Rdbms) Range of versions believed to be affected Versions < 11 Versions confirmed as being affected * 9.2.0.7 * 9.2.0.8 * 10.1.0.5 Platforms affected Generic (all / most platforms affected) Fixed: This issue is fixed in * 10.2.0.4 (Server Patch Set) * 11g (Future version) Symptoms: Related To: * Wrong Results * ANSI Joins Description Wrong results can be returned with a query involving a very large select list count when ANSI OUTER JOIN syntax is used. Workaround: Use native oracle outer join syntax or reduce the select list count. ==> ou seja, não há patch e o workaround é usar a boa e velha sintaxe nativa Então pra mim, que manipulo sempre grandes volumes, vcs podem imaginar ser seguríssimo apostar um picolé de limão que ** VAI ** demorar um pouquinho pra eu começar a me preocupar com sintaxe ANSI... []s Chiappa --- Em oracle_br@yahoogrupos.com.br, "Andre Santos" <[EMAIL PROTECTED]> escreveu > > Alisson > > Foi na documentação do Oracle9i Database: > - SQL Reference >- Joins > < > http://download.oracle.com/docs/cd/B10501_01/server.920/a96540/queries7.htm#2054014 > > > > Mas a recomendação permanece na documentação da versão mais atual (11g): > < > http://download.oracle.com/docs/cd/B28359_01/server.111/b28286/queries006.htm#sthref3238 > > > > [ ] > > André > > > Em 16/11/07, Alisson Aguiar <[EMAIL PROTECTED]> escreveu: > > > > Beleza, André. Obrigado pela informação. > > > > Só para complementar, você tem o link da fonte essa informação? É o > > manual, > > White Paper, etc. ? Gostaria de apresentar essa informação (Oracle), > > juntamente com outras que coletei. > > > > Abraço, > > Alisson > > > > Em 16/11/07, Andre Santos <[EMAIL PROTECTED]> > > escreveu: > > > > > > Alisson > > > > > > A própria Oracle recomenda que se use a sintaxe mais moderna (atual > > padrão > > > ANSI), em vez do antigo operador (+): > > > > > > Oracle Corporation recommends that you use the FROM clause OUTER JOIN > > > syntax > > > rather than the Oracle join operator. Outer join queries that use the > > > Oracle > > > join operator (+) are subject to the following rules and restrictions, > > > which > > > do not apply to the FROM clause join syntax: > > > (...) > > > > > > > > > Poderia citar umas boas razões para adotar a sintaxe atualizada, mas a > > > questão é sobre performance... no momento, vou no palpite. :^) > > > Algumas vezes, quando fiz um outer join na sintaxe "antiga" e depois > > refiz > > > na sintaxe "atual", notei que a ordenação do conjunto de linhas foi > > > diferente... daí suponho que o "plano de execução" deve ter sido um > > pouco > > > diferente também. > > > Já que a Oracle recomenda a sintaxe mais moderna, suponho que a > > > "tendência" > > > seja que o otimizador seja cada vez mais voltado a isso. > > > > > > Mas, para tirar qualquer dúvida, seria bom montar um teste (não trivial, > > > com > > > tabelas grandes) e verificar os tempos de resposta e os planos de acesso > > > gerados. > > > > > > [ ] > > > > > > André > > > > > > Em 16/11/07, Alisson Aguiar <[EMAIL PROTECTED] > > > > escreveu: > > > > > > > > Pessoal, > > > > > > > > Existe diferença de performance ao utilizar a sintaxe proprietária do > > > > Oracle > > > > e o padrão ANSI 92/99 no que diz respeito ao OUTER JOIN? Fui > > questionado > > > > sobre essa diferença e nunca medi para ver se existe. > > > > > > > > Alguém aqui já chegou ver se realmente existe diferença na performance >