É, 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