Detalhe, enquanto o teste com parallel roda, NÂO DEIXE de verificar 
que realmente está sendo feito processo em parallel conectando em 
outra sessão como dba e executando query tipo :

select
  decode(px.qcinst_id,NULL,username,
        ' - '||lower(substr(s.program,length(s.program)-
4,4) ) ) "Username",
  decode(px.qcinst_id,NULL, 'QC', '(Slave)') "QC/Slave" ,
  to_char( px.server_set) "Slave Set",
  to_char(s.sid) "SID",
  decode(px.qcinst_id, NULL ,to_char(s.sid) ,px.qcsid) "QC SID",
  px.req_degree "Requested DOP",
  px.degree "Actual DOP"
from
  v$px_session px,
  v$session s
where
  px.sid=s.sid (+)
 and
  px.serial#=s.serial#
order by 5 , 1 desc;

e pra ver a geração de undo se diminui ou não, antes de cada execução 
peça um :

select ss.sid, name, value
  from v$sesstat ss, v$statname sn
where sn.statistic#=ss.statistic#
  and ss.sid = siddasessãoondevcestátestando
  and UPPER(name) like '%undo%';

[]s

 Chiappa
 
--- Em oracle_br@yahoogrupos.com.br, "jlchiappa" <[EMAIL PROTECTED]> 
escreveu
>
> 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" 
> <juliobit_dba@> 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