Deletar muitos Dados em tabela gigante do Oracle

13/07/2017

0

Olá a todos:
Tenho uma tabela oracle com milhões de registros e necessito deletar milhões de registros da mesma.
Tentei deletar por partes Ex: DELETE from <tabela> where CampoData <= '08/04/17' AND rownum <= 50000; --> Este comando fica rodando infinitamente até travar ferramenta de administração do banco(estou usando o SQL Developer..
Tentei deletar por indexes e por chaves e em todos este caso fica rodando e não deleta nada...
Gostaria de saber se existe uma forma eficiente de deleção no Oracle para casos de grande volume de dados...
Desde já Muito Grato a todos...
José Santos

José Santos

Responder

Posts

13/09/2017

Erik Bosco

Boa tarde José.

Você pode criar um backup da sua tabela via CTAS apenas com os registros que você quer deixar, em seguida você dropa a tabela com todos os registros e renomeia a tabela que você criou via CTAS para o nome da tabela original.

Exemplo:
create table pessoa_new as select * from pessoa where idade <= 40;
drop table pessoa;
alter table pessoa_new rename to pessoa;
Responder

Assista grátis a nossa aula inaugural

Assitir aula

Saiba por que programar é uma questão de
sobrevivência e como aprender sem riscos

Assistir agora

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.

Aceitar