Delphi-PRAXiS
Seite 1 von 2  1 2      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Datenbanken (https://www.delphipraxis.net/15-datenbanken/)
-   -   Delphi Geschwindigkeit Datenbank <-> Delphi (https://www.delphipraxis.net/34532-geschwindigkeit-datenbank-delphi.html)

Hansi 24. Nov 2004 12:19


Geschwindigkeit Datenbank <-> Delphi
 
Hey,

In meiner Anwendung haben ich ca. 1000 Paradox-Tabellen(*.db) In jeder Tabelle werden pro Tag ca 300 Einträge gespeichert.
Aus diesen Tabellen werden Werte entnommen, in komplexen Formel berechnet und in einer Temp-Tabelle gespeichert.

Nun meine Frage: Wie muss ich meine Anwendung gestallten, damit die Berechnungen schneller durchlaufen werden? Was bringt es auf einer andere DB zu gehen z.B. MySQL oder Firebird?
Wie begrenzt die Geschwindigkeit? Delphi oder die Datenbank?

Vielen Dank für eure Antworten im Voraus

MrSpock 24. Nov 2004 12:31

Re: Geschwindigkeit Datenbank <-> Delphi
 
Hallo Hansi,

wenn du auf alle Daten in allen Tabellen zugreifen musst und die Tabellen lokal sind, bringt eine Portierung nach Firebird wahrscheinlich nicht viel. Es könnte etwas bringen, die Anzahl der Tabellen zu verkleinern. Natürlich kann auch die komplexe Berechnungf eine Menge Zeit beanspruchen.

Lemmy 24. Nov 2004 13:44

Re: Geschwindigkeit Datenbank <-> Delphi
 
Hi,

ich bin nicht ganz Deiner Meinung:

Bei Verwendung eines Datenbankservers (mit entsprechenden Ressourcen) und der Verwendung von StoredProcedures sowie UDF's sollten die Berechnungen alle auf dem Server laufen, was sich zumindest in einer gewaltigen Verringerung des Netztraffics auswirkt und aus diesem Grund auch schneller ablaufen wird. Allerdings ist dazu einiges an Arbeit für die Umstellung notwendig!

Grüße
Lemmy

Hansi 24. Nov 2004 13:46

Re: Geschwindigkeit Datenbank <-> Delphi
 
Meine Tabellen sind alle lokal. Bedeutet dies dass ich z.B. MYSQL, Firebird und andere eigentlich nicht brauche?

Was macht den größten zeitlichen Anteil aus, der Zugriff auf eine Datenbank(Lösung wäre z.B. Tabellen verkleinern) oder der Berechnungsteil(Lösung wäre z.B. Berechnung mit DLL oder ähnliches durchzuführen)

Was würdet Ihr empfehlen wie ich am besten die Berechnung machen sollte? (geschwindigkeit!)
Was sind eure Vorschläge?

MrSpock 24. Nov 2004 14:07

Re: Geschwindigkeit Datenbank <-> Delphi
 
Hallo Lemmy,

ich stimme dir ja auch voll zu und ich hatte bei meiner Aussage gesagt, das diese nur gilt, wenn die Tabellen lokal sind.

shmia 24. Nov 2004 15:49

Re: Geschwindigkeit Datenbank <-> Delphi
 
Zitat:

Zitat von Hansi
In meiner Anwendung haben ich ca. 1000 Paradox-Tabellen(*.db) In jeder Tabelle werden pro Tag ca 300 Einträge gespeichert.
Aus diesen Tabellen werden Werte entnommen, in komplexen Formel berechnet und in einer Temp-Tabelle gespeichert.

Haben die Tabellen die gleiche Struktur???
Sobald es in einer Datenbank 2 (oder mehr) Tabellen mit gleicher Struktur gibt, deutet dies
auf einen Datenbank Designfehler hin.
(Ausnahme: die 2. Tabelle dient als Archiv für die 1.)

Hansi 24. Nov 2004 16:57

Re: Geschwindigkeit Datenbank <-> Delphi
 
Warum Designfehler?
Jede Tabelle ist für eine eigene Art(Kurse von Aktien). Die Spalten sind zwar in allen gleich. in den Zeilen steht jeweils das Datum mit Uhrzeit und dann verschiedene Werte.
Warum Desginfehler?

jim_raynor 24. Nov 2004 16:59

Re: Geschwindigkeit Datenbank <-> Delphi
 
Zitat:

Zitat von Hansi
Warum Designfehler?
Jede Tabelle ist für eine eigene Art(Kurse von Aktien). Die Spalten sind zwar in allen gleich. in den Zeilen steht jeweils das Datum mit Uhrzeit und dann verschiedene Werte.
Warum Desginfehler?

Nun weil man auch eine Tabelle nehmen kann und durch ein weiteres Feld die Art festlegen kann.

Hansi 24. Nov 2004 17:00

Re: Geschwindigkeit Datenbank <-> Delphi
 
Wie schlägst Du das Datenbank Design für Aktienkurse vor?

shmia 24. Nov 2004 17:10

Re: Geschwindigkeit Datenbank <-> Delphi
 
Zitat:

Zitat von Hansi
Warum Designfehler?
Jede Tabelle ist für eine eigene Art(Kurse von Aktien). Die Spalten sind zwar in allen gleich. in den Zeilen steht jeweils das Datum mit Uhrzeit und dann verschiedene Werte.
Warum Desginfehler?
Wie schlägst Du das Datenbank Design für Aktienkurse vor?

Code:
Tabelle: AktienKurse
======================
IdAktie     Integer         (Primärschlüssel)
Zeitpunkt   DateTime        (Primärschlüssel)
Kurs        Money
Es gibt eine weitere Tabelle namens Aktien:
Code:
======================
IdAktie     Integer         (Primärschlüssel)
WKN         string(15)
Bezeichnung string(50)
Herausgeber string(80)
Valid       Boolean
AktRating   string(3)
.....
Du arbeitet dann nicht mehr mit TTable sondern mit TQuery.
In der Eigenschaft SQL steht dann
SQL-Code:
SELECT * FROM AktienKurse WHERE IdAktie=:IdAktie
Dadurch, dass nun alle Kurse in einer Tabelle gespeichert sind, kannst du viel einfacher verschiedene Aktien miteinander vergleichen.


Alle Zeitangaben in WEZ +1. Es ist jetzt 16:19 Uhr.
Seite 1 von 2  1 2      

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