Autor Beitrag
NOS1971
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 193

Windows 8.1 PRO 64 Bit
Delphi XE7 Professional
BeitragVerfasst: So 02.03.14 20:40 
Hallo zusammen,

seit einiger Zeit widme ich mich ja meinem WebsiteSpider und er läuft nun mit Multithreading und Reportgenerator echt gut ...

Nun komme ich bei relativ großen Webseiten an meine Grenzen ... bei der Analyse von Shops etc. bleibt er irgendwann einfach stehen ... nun habe ich bereiche aus der datenstruktur und analyse einfach auskommentiert um festzustellen woran es liegt und es scheint die Datenmenge zu sein ...

bisher ist alles in einem TObjectDictionary gelagert und die Anzeige übernimmt ein TVirtualStringTree .,,, die Daten sind in einer Klasse abgelegt

Was mache ich nun ? Auf eine Datenbank umsteigen oder wie kann ich solche Datenmenge handeln ?

Grüße und vielen Dank,

Andreas
jaenicke
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 19325
Erhaltene Danke: 1749

W11 x64 (Chrome, Edge)
Delphi 12 Pro, C# (VS 2022), JS/HTML, Java (NB), PHP, Lazarus
BeitragVerfasst: So 02.03.14 22:49 
Wie hoch ist denn die Speicherauslastung?

Prinzipiell macht bei größeren Datenmengen eine Datenbank immer Sinn. Aber das Thema hatten wir ja seinerzeit glaube ich schon.

Für diesen Beitrag haben gedankt: NOS1971
NOS1971 Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 193

Windows 8.1 PRO 64 Bit
Delphi XE7 Professional
BeitragVerfasst: So 02.03.14 23:54 
Hi,

ja .. das hatten wir wohl ... also ich bin bei den 60000 einträgen bei knapp 1,9gb ... dann macht das teil dicht ... und ich habe auch webseiten wo es um mehr als 100000 links geht

Grüße,
Andreas
jaenicke
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 19325
Erhaltene Danke: 1749

W11 x64 (Chrome, Edge)
Delphi 12 Pro, C# (VS 2022), JS/HTML, Java (NB), PHP, Lazarus
BeitragVerfasst: Mo 03.03.14 00:24 
Da 32 Bit Anwendungen nur 2 GiB RAM nutzen können (mit Tricks auch 3), wirst du da um eine Änderung nicht herumkommen.
Entweder du kompilierst für 64-Bit, dann hast du genug RAM zur Verfügung.
Oder du lagerst die Daten in eine Datenbank aus, was ohnehin der sinnvollere Weg sein dürfte.

Für diesen Beitrag haben gedankt: NOS1971
NOS1971 Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 193

Windows 8.1 PRO 64 Bit
Delphi XE7 Professional
BeitragVerfasst: Mo 03.03.14 11:02 
Ach ja ... 32 Bit ... da war doch was ... an die Grenzen bin ich bisher nie gestoßen in all den Jahren meiner Arbeit mit Delphi

Welche DB meinst Du soll ich nutzen sodass ich später im Installer nichts an Treiber etc. benötige ? Wird das nicht saulangsam wenn ich das noch mit dem VirtuslStringTree kopple ?

Grüßle,

Andreas
jaenicke
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 19325
Erhaltene Danke: 1749

W11 x64 (Chrome, Edge)
Delphi 12 Pro, C# (VS 2022), JS/HTML, Java (NB), PHP, Lazarus
BeitragVerfasst: Mo 03.03.14 11:18 
user profile iconNOS1971 hat folgendes geschrieben Zum zitierten Posting springen:
Welche DB meinst Du soll ich nutzen sodass ich später im Installer nichts an Treiber etc. benötige ?
Wenn es schnell sein soll, wäre ein echter SQL Server sinnvoller.
Aber es gibt auch Embedded DBs wie SQLite, die recht schnell sind.

user profile iconNOS1971 hat folgendes geschrieben Zum zitierten Posting springen:
Wird das nicht saulangsam wenn ich das noch mit dem VirtuslStringTree kopple ?
Bei uns geht das sehr schnell. Denn abgerufen werden müssen ja nur jeweils die wenigen gerade angezeigten Datensätze.

Für diesen Beitrag haben gedankt: NOS1971
NOS1971 Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 193

Windows 8.1 PRO 64 Bit
Delphi XE7 Professional
BeitragVerfasst: Mo 03.03.14 11:42 
Dank Sebastian,

wie immer bist Du mit Deinem Wissen und Deinen Infos mein Lichtblick ... ich werde dann mal versuchen das entsprechend umzusetzen :-)

Grüßle,
Andreas
GuaAck
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 378
Erhaltene Danke: 32

Windows 8.1
Delphi 10.4 Comm. Edition
BeitragVerfasst: Mi 05.03.14 23:40 
Hallo,

ich bemühte mich mal um ein Projekt zur Auswertung von etwa 500 GB Messdaten. Ohne jede Erfahrung mit Datenbanken habe ich während der Angebotsphase MySQL (Open Source glaube ich) versucht, ein passables Delphi-Interface dazu gefunden und hatte das für mich überraschend alles schnell laufend. (Leider ist das Projekt nichts geworden, die Auswertung (ohne Datenbank) der ersten 30 GB als *.CSV übermittelten Daten haben mehr als ausgereicht, die fraglichen Effekte aufzuklären. Anzumerken ist, dass die 30 GB in diesem Pilotprojekt in ca. 250 Dateien vorlagen und rein sequentiell ausgewertet werden konnten (war ja ausreichend), es gab somit kein Speicherplatzproblem.)

Gruß
GuaAck
NOS1971 Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 193

Windows 8.1 PRO 64 Bit
Delphi XE7 Professional
BeitragVerfasst: Do 06.03.14 18:10 
Kleine Frage noch in der Kombination der DB mit dem VST ...

wie binde ich denn die Datensätze einer DB an den VirtualStringTree ?
jaenicke
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 19325
Erhaltene Danke: 1749

W11 x64 (Chrome, Edge)
Delphi 12 Pro, C# (VS 2022), JS/HTML, Java (NB), PHP, Lazarus
BeitragVerfasst: Do 06.03.14 18:24 
Ich würde einfach die RecNo an den jeweiligen Datensatz anhängen. Dann brauchst du im OnGetText nur die wieder setzen und kannst sofort alles aus dem Datensatz auslesen, das sollte eigentlich schnell genug sein. Mit so großen Datenmengen habe ich das nie probiert.
Sollte das nicht reichen, könnte man ja noch ein Caching dazwischen setzen.

Für diesen Beitrag haben gedankt: NOS1971
NOS1971 Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 193

Windows 8.1 PRO 64 Bit
Delphi XE7 Professional
BeitragVerfasst: Do 06.03.14 18:29 
Ok ... dann versuche ich mal mein Glück :-)