Vamos por partes aí : PRIMEIRO DE TUDO, nem paralelismo nem 
diminuição de geração de logs são a solução pra todo e qquer caso de 
performance : no caso do paralelismo, o que ele faz é disparar vários 
programas slave simultâneos que vão ler dados ao mesmo tempo, 
consumindo portanto montões de I/O, CPU e RAM - SE vc não tiver 
disponíveis no momento esses recursos extras em quantidade  (porque 
não os possui ou porque o banco está muito ativo, os recursos estão 
em uso por outras sessões) , o paralelismo só pode ** MESMO ** piorar 
a performance...  
 Vamos então fazer um teste parcial então, começando com o NOLOG : 
crie só a estrutura da tabela com create table TAB1 tablespace 
nomedatablespaceLMTausar PCTFREE 1 PCTUSED 99 NOLOGGING as select * 
from [EMAIL PROTECTED] where 1=2; 
  Depois insira os dados com INSERT /*+ APPEND */ TAB1 as select * 
from [EMAIL PROTECTED]; e veja quanto tempo leva.... Feito isso pra poder 
testar paralelismo :
  
  a) se ASSEGURE que os recursos necessários estão presentes e livres 
(ie, tem o hardware, vc não tem outras sessões/outros programas  
queimando CPU e/o usando lotes de RAM e/ou fazendo montões de I/O
  
  e
  
  b) tenha CERTEZA que o paralelismo está corretamente configurado 
(ie, no mínimo vc tem o param de banco parallel_max_servers setado 
com valor não-zero E múltiplo da qtdade de CPUs - inicie-se com 2x ou 
3x a qtdade de CPUs, como mínimo, db_file_multiblock_read no máximo, 
se bd 9i usando PGA automática passar pra manual na sessão e subir 
sort e hash sizes). Já que vc quer testar manualmente, tenha CERTEZA 
que parallel_automatic_tuning está como FALSE.
  
  Agora sim vamos testar, faça um create table TAB3 tablespace 
nomedeOUTRAtablespaceLMTausar PCTFREE 1 PCTUSED 99 PARALLEL NOLOGGING 
as select * from [EMAIL PROTECTED] where 1=2;
  
  e depois mande um : INSERT /*+ APPEND */ TAB3 as select /*+ PARALLEL
(TAB2, n) */ from [EMAIL PROTECTED] ;
  
  veja que eu mandei paralelizar é APENAS O SELECT, que é quem 
é "grande" aqui, ok - *** não ***  faz lá muito sentido vc 
paralelizar o INSERT em si (como vc fez em 
  
  alter session enable parallel dml;
insert /*+ PARALLEL (TAB1,12) */
into TAB1
select /*+ PARALLEL (TAB2,12) */ 

), já que vc SABE que a tabela estava vazia, é pequena portanto, 
sim ????? Paralelismo é pra objs GRANDES....
   No caso acima, pro degree n, faz um teste inicialmente com n sendo 
1/4 de  parallel_max_servers, depois outro criando uma TAB4 e na hora 
do parallel indicando n sendo 1/2, veja lá como se comporta. SE 
consistentemente usando paralelismo a performance piorou, é indicação 
** CLARA ** que o teu sub-sistema de I/O é muito fraco (ou está 
saturado), não está "suportando" o I/O em paralelo massivo que o 
parallel SQL faz, não use paralelismo aí então....
   
   []s
   
    Chiappa
    
    
--- Em oracle_br@yahoogrupos.com.br, "Julio Bittencourt" 
<[EMAIL PROTECTED]> escreveu
>
> Pessoal,
>  
> Tenho que estimar o tempo que levará para copiar umas tabelas de um 
banco
> para outro. Para isso pretendo usar Create Table as Select com 
dblink.
> Como algumas tabelas são bem grandes estou fazendo testes utilizando
> PARALLEL e NOLOGGING para tentar melhorar a performance.
>  
> Acontece que nos testes a utilização de PARALLEL e NOLOGGING não 
está
> melhorando a performance, pelo contrário está demorando muito mais 
do que
> quando não as utilizo.
>  
> Por exemplo, fiz um teste com uma tabela com cerca de 500 mil 
linhas:
>  
> create table TAB1 as select * from [EMAIL PROTECTED]
> /
> ===> Esse create simples levou 158 segundos
>  
>  
> create table TAB1 PARALLEL NOLOGGING
> as select * from  <mailto:[EMAIL PROTECTED]> [EMAIL PROTECTED]
> /
> ===> Esse create com parallel e nologging levou 317 segundos, o 
dobro do
> tempo.
>  
>  
> Tentei melhorar o comando com o que li num documento que explicava 
o uso de
> parallel e ele ficou assim:
>  
> create table TAB1 PARALLEL NOLOGGING
> as select * from  <mailto:[EMAIL PROTECTED]> [EMAIL PROTECTED] where 1=2
> /
> alter session enable parallel dml;
> insert /*+ PARALLEL (TAB1,12) */
> into TAB1
> select /*+ PARALLEL (TAB2,12) */ * from  <mailto:[EMAIL PROTECTED]> 
[EMAIL PROTECTED] 
> /
> ===> Esse levou 266 segundos.
>  
> As versões dos dois bancos é 8.1.7.4. 
> O servidor onde a tabela está sendo criada é Sun Solaris 8 com dois
> processadores (maquina de desenvolvimento). 
> O servidor de onde a tabela está sendo copiada também é Sun Solaris 
e tem
> vários processadores, mas nao sei dizer quantos.
>  
> O que estou fazendo de errado?
>  
> Desde já agradeço.
>  
> Julio.
>  
> 
> 
> [As partes desta mensagem que não continham texto foram removidas]
>


Responder a