Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Delphi Große Datenmengen in Relation setzen (https://www.delphipraxis.net/78907-grosse-datenmengen-relation-setzen.html)

Treffnix 13. Okt 2006 00:47


Große Datenmengen in Relation setzen
 
Hallo,

ich hab mal ne etwas allgemeiner gefasste Frage. Ich muss große Mengen an Daten aus verschiedenen Quellen (MS-SQL, SAP, Dateien) abrufen, zwischenspeichern, in Relation bringen und verarbeiten. Im Grunde ist das eine DB-Struktur, nur auf mehrere Quellen verteilt. Ich würd jetzt sozusagen gerne "joinen". Was ist da der performanteste Weg?

mbamler 13. Okt 2006 07:27

Re: Große Datenmengen in Relation setzen
 
Zitat:

Zitat von Treffnix
Hallo,

ich hab mal ne etwas allgemeiner gefasste Frage. Ich muss große Mengen an Daten aus verschiedenen Quellen (MS-SQL, SAP, Dateien) abrufen, zwischenspeichern, in Relation bringen und verarbeiten. Im Grunde ist das eine DB-Struktur, nur auf mehrere Quellen verteilt. Ich würd jetzt sozusagen gerne "joinen". Was ist da der performanteste Weg?

Ich würde die Daten der verschiedenen Quellen in eine eigene separate DB kopieren (zyklisch oder 'on demand')(z.B. MS-SQL) und darin dann die erforderlichen Operationen durchführen.
Du verschenkst sonst die Mächtigkeit, die du durch eine Relationale Datenbank geboten bekommst.
Zum anderen werden Operationen auf Datenmengen, die du in Delphi abbildest immer langsamer sein, als wenn du sie direkt in einer Datenbank ausführst. Das liegt nicht an Delphi, sondern an der Art wie die Operationen abgearbeitet werden.

Gruß
Matthias

Treffnix 13. Okt 2006 12:49

Re: Große Datenmengen in Relation setzen
 
Hallo und danke für die Antwort.

Daran habe ich natürlich auch schon gedacht. Ich bin mir nur nicht sicher, ob das in der Summe wirklich schneller ist. Wenn die Daten erst mal in der Datenbank stehen, wäre das sicherlich schneller, aber das Eintragen in die Datenbank kostet ja dann jedesmal schon ne Menge Zeit. Vor allem die 1:1 Beziehungen würde ich gerne ohne Datenbank erledigen. Im Moment läufts so, dass ich aus Tabelle1 die Grunddaten auslese, für jeden Datensatz ein Objekt erstelle und in ner Liste ablege. Dann lese ich Tabelle 2, iteriere durch, suche anhand der ID aus Tabelle 2 das Objekt in meiner Liste und trage die Daten nach. Das ganze dann noch wiederholt mit einigen anderen Tabellen bei jeweils bis zu 40.000 Datensätzen dauert dann aber schon ein bissl. Allein schon jedesmal die Suche in meiner Liste. Was wäre der schnellste Weg in großen Listen anhand einer ID nach einem Objekt zu suchen? Wäre der Zugriff auf Records grundsätzlich schneller als auf Objekte? Oder gibts generell ein schnelleres Verfahren?


Alle Zeitangaben in WEZ +1. Es ist jetzt 00:44 Uhr.

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