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]