È molto meglio inserire alcune centinaia di righe alla volta, utilizzando le tabelle PL/SQL e FORALL per associare l'istruzione insert. Per i dettagli su questo vedere qui .
Fai attenzione anche a come costruisci le tabelle PL/SQL. Se possibile, preferisci invece eseguire tutte le tue trasformazioni direttamente in SQL usando "INSERT INTO t1 SELECT ..." poiché eseguire operazioni riga per riga in PL/SQL sarà comunque più lento di SQL.
In entrambi i casi, puoi anche utilizzare gli inserimenti del percorso diretto usando INSERT /*+APPEND*/
, che sostanzialmente ignora la cache del DB e alloca e scrive direttamente nuovi blocchi nei file di dati. Questo può anche ridurre la quantità di registrazione, a seconda di come la usi. Questo ha anche alcune implicazioni, quindi leggi manuale fine
primo.
Infine, se stai troncando e ricostruendo la tabella, potrebbe essere utile prima eliminare (o contrassegnare come inutilizzabili) e successivamente ricostruire gli indici.