Oracle
 sql >> Base de données >  >> RDS >> Oracle

Quel est le moyen le plus rapide d'insérer des données dans une table Oracle ?

Il est préférable d'insérer quelques centaines de lignes à la fois, en utilisant des tables PL/SQL et FORALL pour se lier à l'instruction d'insertion. Pour plus de détails à ce sujet, voir ici .

Faites également attention à la façon dont vous construisez les tables PL/SQL. Si possible, préférez plutôt faire toutes vos transformations directement en SQL en utilisant "INSERT INTO t1 SELECT ..." car faire des opérations ligne par ligne en PL/SQL sera toujours plus lent qu'en SQL.

Dans les deux cas, vous pouvez également utiliser des insertions de chemin direct en utilisant INSERT /*+APPEND*/ , qui contourne essentiellement le cache de la base de données et alloue et écrit directement de nouveaux blocs dans les fichiers de données. Cela peut également réduire la quantité de journalisation, selon la façon dont vous l'utilisez. Cela a également des implications, veuillez donc lire le beau manuel première.

Enfin, si vous tronquez et reconstruisez la table, il peut être utile de supprimer d'abord (ou de marquer comme inutilisable) et de reconstruire ultérieurement les index.