Einzelnen Beitrag anzeigen

shmia

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

Re: viele Generatoren auf einmal "holen"

  Alt 15. Feb 2007, 14:58
Zitat von hoika:
"" Wenn du also 100 Nummern reserviert, dann 100 Inserts für die Mastertabelle + die Inserts für die Detailtabelle generierst (in StringListe sammeln) erreichst du die maximal mögliche Einfügegeschwindigkeit. ""
Meinst du das mit blockweise ?
Ja, anstatt jeden Insert einzeln auf die Reise zu schicken, werden die Inserts gesammelt und dann im Block abgeschickt.
Das bedeutet aber, dass man nicht den bequemen Weg über Datasets nehmen kann (Query.Edit; query['Feld'] := ...; query.Post sondern man muss die Inserts als Strings zusammenbauen.
Über Connection.Execute() kann man die gesammelten Inserts absetzen.
Die Anweisungen werden durch einen Strichpunkt getrennt. (DBMS abhängig)
Nicht jedes DBMS erlaubt mehrfache SQL-Anweisungen (MS-SQL-Server: ja, MS-Access: nein, IB: ???).

Nur mit dieser Technik konnte ich z.B. 1.3 Mio Datensätze innerhalb von ~ 40 Min in eine MS SQL-Server Datenbank einfügen.
Andreas
  Mit Zitat antworten Zitat