É, Milton. Por isso comentei do ambiente de prod. :)

Grato.

Paulo Sousa



2012/9/10 Milton Bastos Henriquis Jr. <miltonbas...@gmail.com>

> **
>
>
> Mas na sua demonstração não tem absolutamente NENHUMA diferença...
> Mesmo plano execução, mesmo custo, mesmo tempo de execução....
> Apenas 1 segundo pra cada uma das duas execuções.
>
> Como a sua demostração foi com uma quantidade muito pequena
> de dados (o custo ficou muito baixo), não dá pra provar nada.
>
> 2012/9/10 [Paulo Sousa] <paulorso...@gmail.com>
>
>
> > Oi, pessoal. Fiz uma demonstração, mas só consegui mostrar o tempo de CPU
> > aqui. Eu não tenho mais o ambiente que eu usava antes, que era uma
> réplica
> > de um bd de produção, aí a diferença de tempo dava uns bons segundos. De
> > qualquer forma, segue:
> >
> > (Só mexia nos índices comuns, nada de uniques).
> >
> > SQL>create sequence seq_test_tbs
> > start with 1
> > nocache
> > nocycle
> > increment by 1; 2 3 4 5
> >
> > Sequence created.
> >
> > SQL>create table test_tbs (
> > test_tbs_id number(10)
> > , test_tbs_desc varchar2(30)
> > , test_tbs_type number
> > , constraint pk_test_tbs primary key (test_tbs_id)
> > ); 2 3 4 5 6
> >
> > Table created.
> >
> > SQL> begin
> > 2
> > for i in 1..2000000
> > 3 4 loop
> > 5
> > 6 insert into test_tbs(
> > 7 test_tbs_id
> > 8 , test_tbs_desc
> > 9 , test_tbs_type
> > ) values(
> > 10 11 seq_test_tbs.nextval
> > 12 , 'description ' || i
> > 13 , i
> > 14 );
> > 15
> > 16 if( i = 1000000)
> > then
> > 17 18
> > 19 commit;
> >
> > 20 21 end if;
> > 22
> > 23 end loop;
> > 24
> > 25 commit;
> > 26
> > 27 end;
> > 28 /
> >
> >
> >
> > PL/SQL procedure successfully completed.
> >
> > SQL> update test_tbs
> > set test_tbs_desc = 'index_usage'
> > where test_tbs_id
> > BETWEEN 500000 AND 1500000; 2 3 4
> >
> > 1000001 rows updated.
> >
> > SQL> update test_tbs
> > set test_tbs_desc = 'index_usage2'
> > where test_tbs_id
> > BETWEEN 1500001 AND 2000000; 2 3 4
> >
> > 500000 rows updated.
> >
> > SQL> commit;
> >
> > Commit complete.
> >
> > SQL> set timing on
> >
> > SQL> create index indx_test_tbs_desc on test_tbs(test_tbs_desc);
> >
> > Index created.
> >
> > Elapsed: 00:00:06.21
> >
> > SQL> set autot trace exp
> >
> > SQL> select * from test_tbs where test_tbs_desc = 'description 556'
> > and TEST_TBS_TYPE = 556; 2
> > Elapsed: 00:00:00.01
> >
> > Execution Plan
> > ----------------------------------------------------------
> > Plan hash value: 3009671018
> >
> >
> > ----------------------------------------------------------
> > | Id | Operation | Name | Rows | Bytes |
> > Cost (%CPU)| Time |
> >
> > ----------------------------------------------------------
> > | 0 | SELECT STATEMENT | | 207 | 8901 |
> > 8 (0)| 00:00:01 |
> > |* 1 | TABLE ACCESS BY INDEX ROWID| TEST_TBS | 207 | 8901 |
> > 8 (0)| 00:00:01 |
> > |* 2 | INDEX RANGE SCAN | INDX_TEST_TBS_DESC | 111 | |
> > 2 (0)| 00:00:01 |
> >
> > ----------------------------------------------------------
> >
> > Predicate Information (identified by operation id):
> > ---------------------------------------------------
> >
> > 1 - filter("TEST_TBS_TYPE"=556)
> > 2 - access("TEST_TBS_DESC"='description 556')
> >
> > Note
> > -----
> > - dynamic sampling used for this statement (level=2)
> >
> > SQL> alter index indx_test_tbs_desc rebuild tablespace indexes;
> >
> > Index altered.
> >
> > Elapsed: 00:00:06.60
> > SQL> select * from test_tbs where test_tbs_desc = 'description 556'
> > and TEST_TBS_TYPE = 556; 2
> > Elapsed: 00:00:00.01
> >
> > Execution Plan
> > ----------------------------------------------------------
> > Plan hash value: 3009671018
> >
> >
> > ----------------------------------------------------------
> > | Id | Operation | Name | Rows | Bytes |
> > Cost (%CPU)| Time |
> >
> > ----------------------------------------------------------
> > | 0 | SELECT STATEMENT | | 207 | 8901 |
> > 5 (0)| 00:00:01 |
> > |* 1 | TABLE ACCESS BY INDEX ROWID| TEST_TBS | 207 | 8901 |
> > 5 (0)| 00:00:01 |
> > |* 2 | INDEX RANGE SCAN | INDX_TEST_TBS_DESC | 111 | |
> > 2 (0)| 00:00:01 |
> >
> > ----------------------------------------------------------
> >
> > Predicate Information (identified by operation id):
> > ---------------------------------------------------
> >
> > 1 - filter("TEST_TBS_TYPE"=556)
> > 2 - access("TEST_TBS_DESC"='description 556')
> >
> > Note
> > -----
> > - dynamic sampling used for this statement (level=2)
> >
> > Grato.
> >
> > Paulo Sousa
> >
> >
> >
> > 2012/9/6 Alessandro Lúcio Cordeiro da Silva <
> alecordeirosi...@yahoo.com.br
> > >
> >
> > > **
>
> > >
> > >
> > >
> > >
> > > Pra mim, chega de tablespace separada entre dados e indices, não faz
> > > sentido. Muitas pessoas dizem de "acesso concorrente entre dados e
> > > indices", mas não existe isso. No Select você primeiro acesso o indices
> > de
> > > depois a tabela, no DML o Oracle acessa primeiro a tabela e depois o
> > > indices. E num ambiente multi usuario, tudo é acesso concorrente.
> Também
> > > ouve muito que "se você perder a tablespace indices só preciso recriar
> os
> > > indices". Se você perder a tablespace indices o seu sistema esta
> > > indisponivel, não é mais 1980. Se você perdeu o indices não funciona
> mais
> > > nada.
> > >
> > > Aumentando a discursão, chega de datafiles de 2 e/ou 4 giga, ja
> > estamos
> > > no seculo 21. Pode criar o DataFile de 32 Giga (o tamanho maximo dos
> > > datafiles em SmallFile) o ambiente suporta. Então criar uma tablespace
> > > data, joga tudo la dentro e esta otimo. Vai estar tudo dentro Storage
> que
> > > vai estar particinado.
> > >
> > > Alessandro Lúcio Cordeiro da Silva
> > > Analista de Sistema
> > > þ http://alecordeirosilva.blogspot.com/
> > > O tic-tac do relógio me lembra de algo muito importante que esta
> > > acontecendo: estamos vivos.
> > > "Joana de Souza Schmitz Croxato"
> > >
> > >
> > > ________________________________
> > > De: Wanderson Barrence <wbarre...@gmail.com>
> > > Para: oracle_br@yahoogrupos.com.br
> > > Enviadas: Quinta-feira, 6 de Setembro de 2012 14:19
> > > Assunto: [oracle_br] Os índices do banco de dados devem ficar numa
> > > tablespace específica?
> > >
> > >
> > >
> > >
> > > Olá Pessoal,
> > >
> > > Gostaria de saber se é interessante manter os índices do banco de dados
> > > numa tablespace específica (TBS_INDEX)?
> > >
> > > Se sim, quais são as vantagens?
> > >
> > > Caso contrário, quais são as desvantagens?
> > >
> > > Att,
> > >
> > > --
> > > Wanderson Barrence
> > > DBA Oracle 10g/11g
> > > Analista de Testes - CBTS
> > > ----------------------------------------------------------
> > > MSN: wbarre...@hotmail.com
> > > ICQ: 170821994
> > > Linkedin: http://br.linkedin.com/in/wbarrence
> > >
> > > [As partes desta mensagem que não continham texto foram removidas]
> > >
> > > [As partes desta mensagem que não continham texto foram removidas]
> > >
> > >
> > >
> >
> >
> > [As partes desta mensagem que não continham texto foram removidas]
> >
> >
> >
> > ------------------------------------
>
> >
> >
> > ----------------------------------------------------------
> > >Atenção! As mensagens do grupo ORACLE_BR são de acesso público e de
> > inteira responsabilidade de seus remetentes.
> > Acesse: http://www.mail-archive.com/oracle_br@yahoogrupos.com.br/
> >
> > ----------------------------------------------------------
> > >Apostilas » Dicas e Exemplos » Função » Mundo Oracle » Package »
> > Procedure » Scripts » Tutoriais - O GRUPO ORACLE_BR TEM SEU PROPRIO
> ESPAÇO!
> > VISITE: http://www.oraclebr.com.br/
> > ----------------------------------------------------------
> > Links do Yahoo! Grupos
> >
> >
> >
>
> --
> Att,
>
>
> [As partes desta mensagem que não continham texto foram removidas]
>
>  
>


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



------------------------------------

--------------------------------------------------------------------------------------------------------------------------
>Atenção! As mensagens do grupo ORACLE_BR são de acesso público e de inteira 
>responsabilidade de seus remetentes.
Acesse: http://www.mail-archive.com/oracle_br@yahoogrupos.com.br/ 
--------------------------------------------------------------------------------------------------------------------------
>Apostilas » Dicas e Exemplos » Função » Mundo Oracle » Package » Procedure » 
>Scripts » Tutoriais - O GRUPO ORACLE_BR TEM SEU PROPRIO ESPAÇO! VISITE: 
>http://www.oraclebr.com.br/  
------------------------------------------------------------------------------------------------------------------------
 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:
    oracle_br-unsubscr...@yahoogrupos.com.br

<*> O uso que você faz do Yahoo! Grupos está sujeito aos:
    http://br.yahoo.com/info/utos.html


Responder a