Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Datenbanken (https://www.delphipraxis.net/15-datenbanken/)
-   -   Delphi Apply Updates extrem langsam (https://www.delphipraxis.net/57464-apply-updates-extrem-langsam.html)

iamjoosy 21. Nov 2005 20:05

Datenbank: Access 2002 • Zugriff über: ADO

Apply Updates extrem langsam
 
Hi,

folgende Situation:

Ein Cliendataset, Eine TDatasetProvider Komponente und Eine TADOTable (die auf eine lokale Acess Datenbank zeigt), alles ordentlich verknüpft.

Wende ich jetzt ein ApplyUpdates an, so geht das meiner Meinung nach extrem langsam - es handelt sich hier um ca. 15.000 Datensätze (die neue eingefügt werden müssen), aber das kann ja eigentlich nicht > 1 Minute dauern, oder doch, oder mache ich was falsch?

Bin für alle Ratschläge dankbar

Bernhard Geyer 22. Nov 2005 07:35

Re: Apply Updates extrem langsam
 
Wenn Du das letzte Prozent Performance benötigst so darfst Du nicht die ADOExpress-Komponenten nehmen sondern mußt mittels native ADO-Komponenten und prepared Statements arbeiten.

Aber wie kommst Du darauf das 15000 Inserts/Min langsam wäre (Wie lange dauerts genau)? Was erwartest Du denn bzw. hast Du mit anderen Datenbanken bessere Erfahrungen?

iamjoosy 24. Nov 2005 21:41

Re: Apply Updates extrem langsam
 
Hallo Bernhard,

nun, wie darauf komme dass das langsam ist, dass wenn ich die daten direkt aus dem CDS auf festplatte speichere (mitells savetofile) dies ca. 20x schneller geht - ich will das aber nochmals ganz genau testen - siehe auch meinen anderen Thread (Habe leider deine Antwort zu spät gesehen).

Bernhard Geyer 25. Nov 2005 07:39

Re: Apply Updates extrem langsam
 
Zitat:

Zitat von iamjoosy
Hallo Bernhard,

nun, wie darauf komme dass das langsam ist, dass wenn ich die daten direkt aus dem CDS auf festplatte speichere (mitells savetofile) dies ca. 20x schneller geht - ich will das aber nochmals ganz genau testen - siehe auch meinen anderen Thread (Habe leider deine Antwort zu spät gesehen).

Du darst keinen einfachen Binäre Dateispeicherung mit einer Datenbank vergleichen. In einer Datenbank werden solche "Nebensächlichkeiten" wie Datenintegrität (Verhinderung von Primärschlüsselverletzungen, Erlaubte Werte von Spalten, ...) und Aktualisierungen von Indexen durchgeführt.

iamjoosy 25. Nov 2005 07:45

Re: Apply Updates extrem langsam
 
Hallo Bernhard,

ja, das ist mir schon klar, ich dachte nur, dass es vielleicht Möglichkeiten gibt, wie man das schreiben in eine DB beschleunigen kann, bzw. dass ich da Fehler mache, die mir gar nicht bewusst sind - aber vielleicht hast du recht, und das schreiben ist einfach so langsam, wahrscheinlich sind Datenbanken auch eher darauf optimiert Daten wieder schnell auszulesen - was in meinem Fall ja auch tatsächlich sehr gut funktioniert.

Bernhard Geyer 25. Nov 2005 07:57

Re: Apply Updates extrem langsam
 
Zitat:

Zitat von iamjoosy
Hallo Bernhard,

ja, das ist mir schon klar, ich dachte nur, dass es vielleicht Möglichkeiten gibt, wie man das schreiben in eine DB beschleunigen kann,

Prepared Statements und verwendung native ADO-Komponenten.
Bei Access nimmt man als CurserLocation clUseServer.

Zitat:

Zitat von iamjoosy
bzw. dass ich da Fehler mache, die mir gar nicht bewusst sind - aber vielleicht hast du recht, und das schreiben ist einfach so langsam, wahrscheinlich sind Datenbanken auch eher darauf optimiert Daten wieder schnell auszulesen - was in meinem Fall ja auch tatsächlich sehr gut funktioniert.

Datenbanken müssen/sollten das ACID-Prinzip erfüllen.


Alle Zeitangaben in WEZ +1. Es ist jetzt 06:55 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