Muito Muito Obrigado.... melhor impossível....
On 1/5/06, jlchiappa <[EMAIL PROTECTED]> wrote: > > Segue um exemplinho, pra não ficar tão "no ar" : > > > [EMAIL PROTECTED]:SQL>show parameters query > > NAME TYPE VALUE > ------------------------------------ ----------- --------------- > query_rewrite_enabled string FALSE > query_rewrite_integrity string enforced > > [EMAIL PROTECTED]:SQL>alter session set OPTIMIZER_MODE=RULE; > > Sessão alterada. > > [EMAIL PROTECTED]:SQL>select empno, ename, comm, sal from emp; > > EMPNO ENAME COMM SAL > ------------------ ---------- ------------------ ------------------ > 7369 SMITH 800 > 7499 ALLEN 300 1600 > 7521 WARD 500 1250 > 7566 JONES 2975 > 7654 MARTIN 1400 1250 > 7698 BLAKE 2850 > 7782 CLARK 2450 > 7788 SCOTT 3000 > 7839 KING 5000 > 7844 TURNER 0 1500 > 7876 ADAMS 1100 > 7900 JAMES 950 > 7902 FORD 3000 > 7934 MILLER 1300 > > [EMAIL PROTECTED]:SQL>create or replace function func_comm_not_nulo(P_COMM > number) return number > 2 deterministic > 3 as > 4 BEGIN > 5 if P_COMM is null then > 6 return null; > 7 end if; > 8 return 0; > 9 END; > 10 / > > Função criada. > > [EMAIL PROTECTED]:SQL> > [EMAIL PROTECTED]:SQL>create index IDX_COMM_NOT_NULO on EMP > (func_comm_not_nulo(COMM)); > > Índice criado. > > [EMAIL PROTECTED]:SQL>set autotrace on > [EMAIL PROTECTED]:SQL>select * from emp where func_comm_not_nulo(COMM)=0; > > EMPNO ENAME JOB MGR > HIREDATE SAL COMM DEPTNO > ------------------ ---------- --------- ------------------ -------- -- > ---------------- ------------------ ------------------ > 7499 ALLEN SALESMAN 7698 > 20/02/81 1600 300 30 > 7521 WARD SALESMAN 7698 > 22/02/81 1250 500 30 > 7654 MARTIN SALESMAN 7698 > 28/09/81 1250 1400 30 > 7844 TURNER SALESMAN 7698 > 08/09/81 1500 0 30 > > > Plano de Execução > ---------------------------------------------------------- > 0 SELECT STATEMENT Optimizer=CHOOSE > 1 0 TABLE ACCESS (FULL) OF 'EMP' > > > > > Estatística > ---------------------------------------------------------- > 41 recursive calls > 0 db block gets > 14 consistent gets > 0 physical reads > 0 redo size > 910 bytes sent via SQL*Net to client > 499 bytes received via SQL*Net from client > 2 SQL*Net roundtrips to/from client > 0 sorts (memory) > 0 sorts (disk) > 4 rows processed > > > [EMAIL PROTECTED]:SQL> select /*+ INDEX(emp IDX_COMM_NOT_NULO) */ * from > emp where func_comm_not_nulo(COMM)=0; > > EMPNO ENAME JOB MGR > HIREDATE SAL COMM DEPTNO > ------------------ ---------- --------- ------------------ -------- -- > ---------------- ------------------ ------------------ > 7499 ALLEN SALESMAN 7698 > 20/02/81 1600 300 30 > 7521 WARD SALESMAN 7698 > 22/02/81 1250 500 30 > 7654 MARTIN SALESMAN 7698 > 28/09/81 1250 1400 30 > 7844 TURNER SALESMAN 7698 > 08/09/81 1500 0 30 > > > Plano de Execução > ---------------------------------------------------------- > 0 SELECT STATEMENT Optimizer=CHOOSE (Cost=1 Card=4 Bytes=348) > 1 0 TABLE ACCESS (BY INDEX ROWID) OF 'EMP' (Cost=1 Card=4 Byte > s=348) > > 2 1 INDEX (RANGE SCAN) OF 'IDX_COMM_NOT_NULO' (NON-UNIQUE) ( > Cost=1 Card=2) > > > > > > Estatística > ---------------------------------------------------------- > 423 recursive calls > 0 db block gets > 64 consistent gets > 9 physical reads > 0 redo size > 910 bytes sent via SQL*Net to client > 499 bytes received via SQL*Net from client > 2 SQL*Net roundtrips to/from client > 4 sorts (memory) > 0 sorts (disk) > 4 rows processed > > [EMAIL PROTECTED]:SQL> > > []s > > Chiappa > --- Em oracle_br@yahoogrupos.com.br, "jlchiappa" <[EMAIL PROTECTED]> > escreveu > > > > Nada disso : as estatísticas são usadas pro CBO poder escolher as > > possibilidades e montar um plano, MAS quando vc usa um hint vc ** > já > > está ** indicando que tipo de plano quer, então não > obrigatoriamente > > vc tem que calcular stats, ele já "sabe" que tipo de plano vc > quer... > > > > ==> CLARO, de modo nenhum isso é o recomendado, mas ** se ** o teu > > sistema está em RBO, é tapar o nariz e ir pras hints... > > > > []s > > > > Chiappa > > --- Em oracle_br@yahoogrupos.com.br, Marcelo Cauduro > <[EMAIL PROTECTED]> > > escreveu > > > > > > Eu acho que sim, mas não ter certeza : > > > > > > Se eu forçar o CBO via HINTs terei de coletar estatisticas ? > > > > > > On 1/5/06, jlchiappa <[EMAIL PROTECTED]> wrote: > > > > > > > > Não funciona : vc tem que "forçar" o CBO via HINTs , ou coisa > do > > tipo > > > > pra poder usar FBI, se o seu sistema ainda está em RBO. > > > > > > > > []s > > > > > > > > Chiappa > > > > --- Em oracle_br@yahoogrupos.com.br, Marcelo Cauduro > > <[EMAIL PROTECTED]> > > > > escreveu > > > > > > > > > > Pessoal, > > > > > > > > > > Indice Baseado em Funcao no 9I funciona com RBO - Otimizador > por > > > > Regra ? > > > > > > > > > > > > > > > [As partes desta mensagem que não continham texto foram > > removidas] > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > ---------------------------------------------------------------- > -- > > -------------------------------------------------------- > > > > Atenção! As mensagens deste grupo são de acesso público e de > > inteira > > > > responsabilidade de seus remetentes. > > > > Acesse: http://www.mail- > archive.com/oracle_br@yahoogrupos.com.br/ > > > > > > > > ---------------------------------------------------------------- > -- > > -------------------------------------------------------- > > > _____________________________________________________________________ > > > > Area de download do grupo - > > http://www.4shared.com/dir/101727/a4dcc423 > > > > > > > > > > > > *Yahoo! Grupos, um serviço oferecido por:* PUBLICIDADE > > > > > > > <http://br.rd.yahoo.com/SIG=12feq5jj2/M=387526.7663462.8550203.1588051 > > /D=brclubs/S=2137114689:HM/Y=BR/EXP=1136475593/A=3215516/R=2/SIG=16e > 56 > > adpd/*http://landingstrip.dell.com/landingstrip/ls.asp? > > > CID=10029&LID=288321&DGC=BA&DGStor=DHS&DGSite=Yahoo&Conum=BR&DURL=http > > ://www1.la.dell.com/content/products/category.aspx/desktops?c%3Dbr% > > 26l%3Dpt%26s%3Ddhs> > > > > ------------------------------ > > > > *Links do Yahoo! Grupos* > > > > > > > > - Para visitar o site do seu grupo na web, acesse: > > > > http://br.groups.yahoo.com/group/oracle_br/ > > > > > > > > - Para sair deste grupo, envie um e-mail para: > > > > [EMAIL PROTECTED]<oracle_br- > > [EMAIL PROTECTED]> > > > > > > > > - O uso que você faz do Yahoo! Grupos está sujeito aos > Termos > > do > > > > Serviço do Yahoo! <http://br.yahoo.com/info/utos.html>. > > > > > > > > > > > > > > > > > [As partes desta mensagem que não continham texto foram removidas] > > > > > > > > > > > > -------------------------------------------------------------------------------------------------------------------------- > Atenção! As mensagens deste grupo são de acesso público e de inteira > responsabilidade de seus remetentes. > Acesse: http://www.mail-archive.com/oracle_br@yahoogrupos.com.br/ > > --------------------------------------------------------------------------------------------------------------------------_____________________________________________________________________ > Area de download do grupo - http://www.4shared.com/dir/101727/a4dcc423 > > > *Yahoo! Grupos, um serviço oferecido por:* PUBLICIDADE > <http://br.rd.yahoo.com/SIG=12fg89jmf/M=387526.7663462.8550203.1588051/D=brclubs/S=2137114689:HM/Y=BR/EXP=1136485270/A=3215516/R=2/SIG=16e56adpd/*http://landingstrip.dell.com/landingstrip/ls.asp?CID=10029&LID=288321&DGC=BA&DGStor=DHS&DGSite=Yahoo&Conum=BR&DURL=http://www1.la.dell.com/content/products/category.aspx/desktops?c%3Dbr%26l%3Dpt%26s%3Ddhs> > ------------------------------ > *Links do Yahoo! Grupos* > > - Para visitar o site do seu grupo na web, acesse: > http://br.groups.yahoo.com/group/oracle_br/ > > - Para sair deste grupo, envie um e-mail para: > [EMAIL PROTECTED]<[EMAIL PROTECTED]> > > - O uso que você faz do Yahoo! Grupos está sujeito aos Termos do > Serviço do Yahoo! <http://br.yahoo.com/info/utos.html>. > > [As partes desta mensagem que não continham texto foram removidas] -------------------------------------------------------------------------------------------------------------------------- Atenção! As mensagens deste grupo são de acesso público e de inteira responsabilidade de seus remetentes. Acesse: http://www.mail-archive.com/oracle_br@yahoogrupos.com.br/ --------------------------------------------------------------------------------------------------------------------------_____________________________________________________________________ Area de download do grupo - http://www.4shared.com/dir/101727/a4dcc423 Links do Yahoo! Grupos <*> Para visitar o site do seu grupo na web, acesse: http://br.groups.yahoo.com/group/oracle_br/ <*> Para sair deste grupo, envie um e-mail para: [EMAIL PROTECTED] <*> O uso que você faz do Yahoo! Grupos está sujeito aos: http://br.yahoo.com/info/utos.html