Caro Chiappa Vc tem tempo pra explicar a function abaixo... nao entendi esse tal de determinstic Estou adorando aprender essas funcionalidades q eu não conhecia.. muito obrigada!
Obrigada Cris ----- Original Message ----- From: jlchiappa To: oracle_br@yahoogrupos.com.br Sent: Thursday, January 05, 2006 2:20 PM Subject: [oracle_br] Re: Indice Baseado em Funcao no 9I funciona com RBO ? 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 ------------------------------------------------------------------------------ Links do Yahoo! Grupos a.. Para visitar o site do seu grupo na web, acesse: http://br.groups.yahoo.com/group/oracle_br/ b.. Para sair deste grupo, envie um e-mail para: [EMAIL PROTECTED] c.. O uso que você faz do Yahoo! Grupos está sujeito aos Termos do Serviço do Yahoo!. [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/ --------------------------------------------------------------------------------------------------------------------------__________________________________________________________________ Moderador e Fundador: Dorian Anderson Soutto [EMAIL PROTECTED] __________________________________________________________________ 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