![]() |
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 |
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. |
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 |
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? |
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. |
Re: Geschwindigkeit Datenbank <-> Delphi
Zitat:
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.) |
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? |
Re: Geschwindigkeit Datenbank <-> Delphi
Zitat:
|
Re: Geschwindigkeit Datenbank <-> Delphi
Wie schlägst Du das Datenbank Design für Aktienkurse vor?
|
Re: Geschwindigkeit Datenbank <-> Delphi
Zitat:
Code:
Es gibt eine weitere Tabelle namens Aktien:
Tabelle: AktienKurse
====================== IdAktie Integer (Primärschlüssel) Zeitpunkt DateTime (Primärschlüssel) Kurs Money
Code:
Du arbeitet dann nicht mehr mit TTable sondern mit TQuery.
======================
IdAktie Integer (Primärschlüssel) WKN string(15) Bezeichnung string(50) Herausgeber string(80) Valid Boolean AktRating string(3) ..... In der Eigenschaft SQL steht dann
SQL-Code:
Dadurch, dass nun alle Kurse in einer Tabelle gespeichert sind, kannst du viel einfacher verschiedene Aktien miteinander vergleichen.
SELECT * FROM AktienKurse WHERE IdAktie=:IdAktie
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 02:46 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz