José Tenho certeza que o Chiappa vai detalhar melhor, mas o caminho é fazer um um INSERT (com o hint de APPEND), já com os dados modificados, ao invés de fazer UPDATE (que sempre será mais lento). Obs.: Atenção que o INSERT /*+ APPEND */ tem alguns pré-requisitos.
[ ] André Em 13/10/08, Jose C Carvalho <[EMAIL PROTECTED]> escreveu: > > Grande Chiappa , obrigado pela Ajuda .. Mais uma Pergunta .. Gostaria de > > saber qual a melhor maneira de fazer com que um update fique mais rápido. > O bulk é melhor caminho ? > > São 30 Milhões de linhas que estou atualizando de 2 em 2 milhões ..Mais > esta muito lento .. ( a maquina não é la essa coisas ) . Estou com oracle > 10g e esta levando 1,5 horas por milhão > > Alguem tem alguma dica ? > > Obrigado > > From: > "jlchiappa" <[EMAIL PROTECTED] <jlchiappa%40yahoo.com.br>> > To: > oracle_br@yahoogrupos.com.br <oracle_br%40yahoogrupos.com.br> > Date: > 13/10/2008 08:28 > Subject: > [SPAM]:[oracle_br] Re: NOLOGGING > > A resposta é bem simples : os archives nada mais são do que cópias dos > redo log files, SE vc estiver gerando redo os redo log files vão > encher e serão copiados para archive, é TOTALMENTE inescapável, > rigorosamente NÃO TEM COMO desabilitar archives, eles são consequência > Natural e Direta do redo, ok ? > O redo vc não tem como evitar totalmente (até pela questão de > Arquitetura do banco, ele trabalha com blocos, para que a performance > não caia ao chão ao invés de atualizar blocos em disco qquer alteração > num bloco TEM que ser salva, isso é o redo, em caso de crash o bloco > original tá em disco e as alterações no log file, é só aplicar as > alterações no bloco original) , o que vc PODE é , em poucas e > restritas situações aonde o bloco é totalmente novo então em caso de > crash não há o que recuperar (como INSERTs em modo append) não há > imagem , reduzir EM MUITO o redo , reduzindo assim em muito o archive > em consequencia de ter menos redo log files sendo enchidos, ok ? Veja > nos manuais os itens sobre modo NOLOGGING para detalhes, mas que fique > claro : > > => vc NÂO ESTÁ com isso desligando totalmente geração de redo log (e > consequentemente archives), desligar TOTALMENTE como vc quer é impossível > > e > > => essa redução só se pode dar em poucos e restritos casos > > []s > > Chiappa > --- Em oracle_br@yahoogrupos.com.br <oracle_br%40yahoogrupos.com.br>, Jose > C Carvalho <[EMAIL PROTECTED]> > escreveu > > > > Boa Tarde pessoal .. Estou precisando fazer um update em uma tabela > com 30 > > > > Milhões de registro sem gerar archive .. Fiz um alter table nologging > > na tabela porem a geração de archives continua > > > > Na documentação esta falando que essa clausula não afeta INSERT > > convencional ,UPDATE, DELETE .. > > > > Alguém tem alguma diga para não gerar archives ? ( não posso tira a > base > > de modo Archive ) > > > > Obrigado > > > > > > > > > > [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]