Einzelnen Beitrag anzeigen

globetrotter77

Registriert seit: 16. Jan 2009
Ort: Nürnberg
236 Beiträge
 
Delphi 10.3 Rio
 
#34

Re: Firebird Import aus Textdatei extrem langsam

  Alt 15. Sep 2009, 10:22
Zitat von hoika:
Hallo,

benutzt du denn jetzt das hier ?

Delphi-Quellcode:
var
  TD:TTransactionDesc; (aus DBXpress)
begin
  TD. // usw.

  SQLConnection.StartTransaction(TD);
  try
    SQLConnection.ExecuteDirect('INSERT INTO ...');
    SQLConnection.Commit(TD);
  except
    SQLConnection.Rollback(TD);
  end;
end;
Genau das benutze ich, allerdings zunächst mal nur in einer einzigen großen Transaktion.
Das werde ich noch abändern. Pro Datensatz ist allerdings auch zu langsam.
Zitat von hoika:
Du musst das mit den Parametern und der Query hinbekommen.
Eine prepared Query ist etwa doppelt so schnell wie das da oben.
Das würde ich gerne tun, aber mit SQLConnection.ExecuteDirect('INSERT INTO ...') habe ich doch gar keine Parameter zur Verfügung, oder?
Oder wäre es möglich, innerhalb von SQLConnection.StartTransaction und SQLConnection.Commit wieder auf SQLQuery-Methoden zurückzugreifen? (Mal abgesehen davon, dass die unbekannte Spalte angemeckert wird)
Zitat von hoika:
Man könnte auch noch folgendes machen:
- je nach 500 Datensätzen Commit/StartTransaction
das habe ich auf jeden Fall vor
Zitat von hoika:
- per Alter Index XXX Inactive alle nicht benötigten Indizes deaktivieren
Heiko
tja, leider habe ich schon alles soweit abgespeckt, dass nur noch ein PRIMARY KEY vorhanden ist, den ich auch brauche, weil mit doppelten Schlüsseln zu rechnen ist.

Leider hat das alles aber gar nichts damit zu tun, dass sich das System danach (!) völlig unzumutbar verhält.
  Mit Zitat antworten Zitat