Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Datenbanken (https://www.delphipraxis.net/15-datenbanken/)
-   -   Delphi AbsoluteDB sehr langsam!? Einlesen von ~ 6000 Sätzen (https://www.delphipraxis.net/136693-absolutedb-sehr-langsam-einlesen-von-%7E-6000-saetzen.html)

Dragon27 6. Jul 2009 09:30

Datenbank: AbsoluteDB • Version: 6.04 • Zugriff über: Über mitgelieferte Komponente lokal

AbsoluteDB sehr langsam!? Einlesen von ~ 6000 Sätzen
 
Hallo,

im Moment arbeite ich mit der AbsoluteDB. Leider kommt mir diese äußerst langsam vor.

Folgendes lasse ich ausführen:

Delphi-Quellcode:
Procedure InsertArtistBounce(Ort:string);
begin
Form1.ABSQuery1.SQL.Text:=Form1.ABSQuery1.SQL.Text+'INSERT INTO "OrtsListe" ("Ort") VALUES ("'+Ort+'");';
end;
Das wiederhole ich für jeden Ort. Im Moment sind das 6000 aus einer Liste.

Den SQL Befehl lasse ich dann so ausführen:

Delphi-Quellcode:
Form1.ABSQuery1.ExecSQL;
Leider braucht dieser Code sehr lange zum ausführen (>4 Minuten).

Mache ich bei der Sache was falsch oder ist das bei AbsoluteDB normal. Ich habe auch gehört,
dass es einen Unterschied macht, wie man einen SQL-Befehl ausführen lässt (Also von der Geschwindigkeit her)
nur leider bin ich bei SQL kein Profi ;-)

Danke für Eure Hilfe!

mirage228 6. Jul 2009 09:31

Re: AbsoluteDB sehr langsam!? Einlesen von ~ 6000 Sätzen
 
Du kannst auch mehrere Datensätze in einem INSERT - Statement unterbringen.

INSERT INTO BlaBla VALUES (...,...), (...,...), ...

Vielleicht hilft Dir das ja...

Viele Grüße

Dragon27 6. Jul 2009 09:55

Re: AbsoluteDB sehr langsam!? Einlesen von ~ 6000 Sätzen
 
Hallo mirage228,

danke für deine Hilfe! Leider hat sich das Performanceproblem damit nicht
lösen lassen.

Vielleicht wisst Ihr noch etwas..?

Danke!

ULIK 6. Jul 2009 10:01

Re: AbsoluteDB sehr langsam!? Einlesen von ~ 6000 Sätzen
 
Probier doch mal, die Query mit Parametern zu erstellen.
SQL einmal füllen mit 'INSERT INTO "OrtsListe" ("Ort") VALUES (:ORTSNAME);'
dann beim eigentlichen Ausführen nur noch den Parameter setzen und dann starten.

Hast Du eine Kopplung an ein GUI? Dann diese zuvor ausschalten!


Grüße,
Uli

Trigger2003 6. Jul 2009 10:07

Re: AbsoluteDB sehr langsam!? Einlesen von ~ 6000 Sätzen
 
Vielleicht hilft das hier:

Zitat von der Hersteller-Website FAQ
Zitat:

1. How to speedup bulk inserts?

You can speedup bulk inserts by using transactions:
AbsDB.StartTransaction;
...insert data...
AbsDB.Commit(False);


Alle Zeitangaben in WEZ +1. Es ist jetzt 06:05 Uhr.

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz