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

Qual é a maneira mais rápida de inserir dados em uma tabela Oracle?


É muito melhor inserir algumas centenas de linhas de cada vez, usando tabelas PL/SQL e FORALL para vincular à instrução insert. Para obter detalhes sobre isso, consulte aqui .

Também tenha cuidado com a forma como você constrói as tabelas PL/SQL. Se possível, prefira fazer todas as suas transformações diretamente no SQL usando "INSERT INTO t1 SELECT ...", pois fazer operações linha por linha no PL/SQL ainda será mais lento que o SQL.

Em ambos os casos, você também pode usar inserções de caminho direto usando INSERT /*+APPEND*/ , que basicamente ignora o cache do banco de dados e aloca e grava diretamente novos blocos em arquivos de dados. Isso também pode reduzir a quantidade de log, dependendo de como você o usa. Isso também tem algumas implicações, portanto, leia o bom manual primeiro.

Finalmente, se você estiver truncando e reconstruindo a tabela, pode valer a pena primeiro descartar (ou marcar como inutilizável) e depois reconstruir os índices.