sql >> Database >  >> RDS >> Oracle

Wat is de snelste manier om gegevens in een Oracle-tabel in te voegen?

Het is veel beter om een ​​paar honderd rijen tegelijk in te voegen, met behulp van PL/SQL-tabellen en FORALL om te binden in een insert-statement. Voor details hierover zie hier .

Wees ook voorzichtig met de manier waarop u de PL/SQL-tabellen maakt. Als het enigszins mogelijk is, geeft u er de voorkeur aan in plaats daarvan al uw transformaties rechtstreeks in SQL uit te voeren met behulp van "INSERT INTO t1 SELECT ...", aangezien het uitvoeren van rij-voor-rij bewerkingen in PL/SQL nog steeds langzamer zal zijn dan in SQL.

In beide gevallen kunt u ook direct-path-inserts gebruiken door INSERT /*+APPEND*/ te gebruiken , die in feite de DB-cache omzeilt en direct nieuwe blokken toewijst en schrijft naar gegevensbestanden. Dit kan ook de hoeveelheid logboekregistratie verminderen, afhankelijk van hoe u het gebruikt. Dit heeft ook enkele implicaties, dus lees de fijne handleiding eerst.

Ten slotte, als u de tabel afkapt en opnieuw opbouwt, kan het de moeite waard zijn om eerst indexen te verwijderen (of onbruikbaar te markeren) en later opnieuw op te bouwen.



  1. Lijst met alle index- en indexkolommen in SQL Server DB

  2. Wijzig het MySQL-stuurprogramma dat door Joomla wordt gebruikt

  3. Tabelwijziging in Oracle volgen

  4. MySQL-type voor het opslaan van een jaar:Smallint of Varchar of datum?