Einzelnen Beitrag anzeigen

shmia

Registriert seit: 2. Mär 2004
5.508 Beiträge
 
Delphi 5 Professional
 
#8

AW: Insert optimieren

  Alt 16. Sep 2010, 14:21
Es gibt folgende "Tricks" für schnellere Masseninsert:
1.) INSERT-Anweisung mit mehreren Zeilen
SQL-Code:
INSERT INTO Tabelle(KFZ, leistung)
VALUES('BMW M3', 321.0)
VALUES('VW Golf5 TDI', 120.0)
VALUES('Audi A3 TDI', 120.0)
...
Somit kann man auf einen Rutsch einige Hundert bis Tausend Datensätze einfügen.
Der Vorteil ergibt sich auch dadurch, dass nicht jeder einzelne Datensatz
einen TCP/IP Roundtrip erfordert.
Leider verstehen nur wenige Datenbanken diese erweiterte Syntax.

2.) viele Insert-Anweisungen (getrennt durch auf einen Rutsch an den Server senden.
Dazu werden die Insert-Anweisung in einer Stringliste gesammelt
und als ein Gesamtstring an die ExecSQL() Funktion weitergegeben.
Auch hier hängt es davon ab, ob die Datenbank diesen "Batch-Betrieb" akzeptiert.

In beiden Fällen müssen die Insert-Anweisung ohne Unterstützung durch Parameter erzeugt werden.
Aber die höhere Einfügegeschw. sollte diesen Nachteil aufwiegen.
Andreas
  Mit Zitat antworten Zitat