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

 


Responder a