Einzelnen Beitrag anzeigen

jobo

Registriert seit: 29. Nov 2010
3.072 Beiträge
 
Delphi 2010 Enterprise
 
#9

AW: FireDAC: Viele Records einfügen dauert ziemlich lange

  Alt 10. Dez 2015, 10:32
Falls auf dem FK ein Index liegt, den solange deaktivieren datenbankseitig, sonst hast Du nicht nur 50T inserts, sondern das gleiche nochmal beim Index.
Ja, tut es. Warum? Keine Ahnung. Ich verstehe nicht mal wirklich was das ist, ich denke mal, das hilft ihm bei SELECT-Statements den Kram schneller zu finden.

Eins verstehe ich nicht: Warum redet Ihr fast alle von einer Query? Es ist eine Tabelle, TFdTable.
So soll das ja sein ein Index auf Fremdschlüsselfelder, alles gut.
Bei massiven Datenbewegungen (Insert oder Update) auf dem Schlüsselfeld ist der Index leider kontraproduktiv, er ist hauptsächlich eine Hilfe beim schnellen Select.
Der Vorschlag ist aber eher was für den Fall, dass Du mit Delphi Bordmitteln nicht so schnell wirst, wie Du möchtest.

Es reden alle von Query, weil da vermutlich die Erfahrung raus spricht, dass ein Dataset/Table für sowas nicht so geeignet ist.

Mach Dir ein Query Komponente aufs Formular, schreib das Insert Statement rein (parametriert) und fülle die Parameter aus Deinem Memdataset.
Das dann in eine Schleife und Du wirst es wahrscheinlich verstehen, woher die Empfehlung kommt.
Das Queryobjekt oder ein Command schickt einfach die Daten zum Server. Es gibt nahezu kein Overhead im Handling. Das ist beim Dataset eben etwas anders.
Gruß, Jo
  Mit Zitat antworten Zitat