Oracle
 sql >> Base de Dados >  >> RDS >> Oracle

Estratégia para melhorar o desempenho do Oracle DELETE


Excluir dados é um trabalho infernal, para o banco de dados. Ele precisa criar imagens anteriores, atualizar índices, gravar logs de redo e remover os dados. Este é um processo lento. Se você pode ter uma janela para realizar esta tarefa, o mais fácil e rápido é construir novas tabelas, contendo os dados desejados. Elimine as tabelas antigas e renomeie as novas tabelas. Isso requer algum trabalho de configuração, que é óbvio, mas é muito bem possível de fazer. Um passo menos drástico é eliminar os índices antes que a exclusão ocorra. Meu voto seria para CTAS (Create Table As Select from) e construir as novas tabelas. Um bom esquema de particionamento certamente seria útil, talvez na próxima versão o Oracle possa combinar particionamento de intervalo e referência. Seria muito bom ter.

Desativando o log .... não pode ser feito para exclusões, mas CTAS pode usar nologging. Faça um backup quando estiver pronto e certifique-se de transferir os arquivos de dados para o banco de dados standby, se você tiver um.