Quando precisei de algo parecido fiz isto... Att
SET SERVEROUTPUT ON DECLARE contador NUMBER := 0; total NUMBER := 0; CURSOR del_record_cur IS SELECT rowid FROM SIGA.RFE050 WHERE RFE_DATA BETWEEN '20110721' AND '20110725' ORDER BY RFE_FILIAL,RFE_RELSP0,RFE_NUMREP,RFE_DTHRG,RFE_IDORG ; BEGIN FOR rec IN del_record_cur LOOP DELETE FROM SIGA.RFE050 WHERE rowid = rec.rowid; total := total + 1; contador := contador + 1; IF (contador >= 10000) THEN COMMIT; DBMS_OUTPUT.PUT_LINE('Processando... Deletados até agora: ' || total || ' registros.'); contador := 0; END IF; END LOOP; COMMIT; DBMS_OUTPUT.PUT_LINE('Deleted ' || total || ' records from SIGA.RFE050.'); END; -----Mensagem Original----- From: Milton Bastos Henriquis Jr. Sent: Tuesday, October 02, 2012 3:43 PM To: oracle_br@yahoogrupos.com.br Subject: Re: [oracle_br] eliminando linhas com um intervalo de 1.000 linhas Qual a versão do teu banco? Nas versões mais recentes não usa-se mais rollback segments... e sim tablespace de UNDO. Eu gostaria de ver a opinião de outros DBA's a respeito! Acho que não precisa de um commit a cada mil registros... 2012/10/2 Anderson Campelo <dba.ander...@gmail.com> > ** > > > A tabela(única) em questão possui quase 32 mi de linhas e preciso deletar > apenas as últimas 7mi. > Esses 7mi de registros são de duas semanas para cá, de lá para cá a tabela > não sofreu atualização. > > Sobre ser um delete simples ou um PL/SQL, pensei em criar um PL, pois como > falei antes estava pensando em ir comitando os processos a cada 1.000 > linhas para não sobrecarregar os arquivos de rollback. > > Obrigado. > > Em 2 de outubro de 2012 15:14, Milton Bastos Henriquis Jr. < > miltonbas...@gmail.com> escreveu: > > > > Primeiro explique melhor o teu caso. > > > > Qual teu critério pra eliminar estas 7M de linhas? > > > > Vc consegue fazer isso com um simples DELETE? > > É uma tabela inteira? É um delete com filtro? > > Precisa de um PL/SQL? > > É apenas em uma tabela? Ou várias tabelas diferentes? > > > > Enfim... dê mais detalhes do teu caso pra que a gente possa passar a > melhor > > solução! > > > > > > > > > > 2012/10/2 Anderson Campelo <dba.ander...@gmail.com> > > > > > ** > > > > > > > > > > Pessoal, > > > > > > Muito boa tarde. > > > Preciso da ajuda de vocês para criar um script rápido de deleção de > > linhas. > > > > > > Será necessário eliminar aproximadamente 7.000.000 de linhas. > > > Vi algo a respeito na web de eliminar as linhas em um intervalo de > > > 1.000linhas sempre comitando o processo após esse intervalo. > > > > > > Como eu posso fazer isso? > > > > > > Desde já agradeço. > > > > > > [As partes desta mensagem que não continham texto foram removidas] > > > > > > > > > > > > > > > > > -- > > Att, > > > > > > > [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 > > > > > > > > > [As partes desta mensagem que não continham texto foram removidas] > > > -- Att, [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