Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Datenbanken (https://www.delphipraxis.net/15-datenbanken/)
-   -   Delphi Grundsätzliche Frage zu Datenbank (https://www.delphipraxis.net/76064-grundsaetzliche-frage-zu-datenbank.html)

Surrounder 29. Aug 2006 12:30

Datenbank: NexusDB • Version: 2.05 • Zugriff über: Datasource

Grundsätzliche Frage zu Datenbank
 
Hallo Forum,

ich hab schon einige Threads gelesen in denen es um die Größe einer DB geht und ob die Datenbank da überhaupt noch schnell genug ist. Ich arbeite seit ein paar Jahren an einem Projekt das ich übernommen habe und hab da jetzt im Prinzip das gleiche Problem dass mir denke ich die Größe ein Problem bereitet.

Ich vermesse mit meiner Software ein Objekt das bis zu 20 Messtellen haben kann. Die Messdaten jeder Messstelle erzeugen ca. 20 KByte Daten in meiner Tabelle in der ich die Messwerte ablege. Ich habe pro Messtelle 5 Messkurven mit je ca. 1000 Messwerten und diese lege ich in jeweils einem Blob Feld ab. Das macht pro Messobjekt bis zu 400 kByte. Die Messobjekte laufen mit 30s durch die Anlage und mit kurzem Stillstand komme ich so auf ca. 2500 Messobjekte pro Tag. Somit kommen ich pro Tag auf ca. 1 GByte Daten die ich in die DB füllen muss pro Tag.

Worum es mir jetzt geht, wie würdet ihr das machen?

Ich hatte schon überlegt die Messkurven als jpg in die db abzulegen, aber um auf dem jpg die Messkurve zu erkennen würde das Bild größer als die Daten die ich jetzt habe. oder hat jemand noch eine andere Idee?

Was habt ihr mir für tipps dass ich das ganze trotzdem noch schnell genug ist?

RavenIV 29. Aug 2006 12:36

Re: Grundsätzliche Frage zu Datenbank
 
brauchst Du die 1000 messwerte wirklich, oder reichen Dir davon auch 100 und den Rest kannst Du interpolieren?

Musst Du die Daten wirklich in einen Blob abspeichern, oder kannst Du auch was anderes nehmen?

Bernhard Geyer 29. Aug 2006 12:39

Re: Grundsätzliche Frage zu Datenbank
 
1 GB pro Tag: Das ist wirklich sehr viel. Selbst bei "normalen" SQL-Servern kommst Du innerhalb kurzer Zeit an Grenzen.

Die Frage die sich mir stellt (ohne die Daten jetzt genau zu kennen) ist welche Daten jetzt für längere Zeiten bezüglich Auswertungen, Analysen, ... schnell verfügbar sein müssen. Muß wirklich 1 GB an Daten für jeden Tag in relativer kleiner Aufteilung in der DB vorhanden sein oder kann man diese konzentrieren. Die "Rohdaten" werden dann z.B. im Filesystem in einem Binärfile (oder Textfile) für Archivierungszwecke neben der DB gehalten.

Alternativ wäre es die Meßdaten nicht in eine Tabelle zu konzentrieren sondern z.B. für jeden Tag eine Meßtabelle zu erzeugen um damit den Obermoloch an Meßdatentabelle zu vermeiden. Auß diesen werden regelmäßig Grundauswertungen gefahren um die wichtigsten Meßdaten für schon in komprimierter Form vorrätig zu halten (wie oben auch).

Surrounder 29. Aug 2006 12:59

Re: Grundsätzliche Frage zu Datenbank
 
Problem ist dass ich eine Rückverfolgbarkeit in der Software haben muss und der Kunde also in einem unbestimmten Zeitraum wenn er feststellt dass es Probleme mit dem Produkt gibt anhand der Daten schauen möchte ob er das hätte schon früher erkennen können. Bei weniger Messwerten müsste ich halt wirklich interpolieren und es könnte sein dass ich Sprünge nicht erkenne.

Nein Blob Felder müssen nicht sein, ich dachte ja auch schon an ein jpg aber das wäre meinen Überlegungen nach größer als ein Blob.

Das speichern außerhalb des DB hatte ich auch schon mal auf dem Plan, Problem ist nur dass ich da Probleme mit den Backups und der Bedienung durch den Endkunden habe dem ich ja erklären muss was er wie sichern muss damit er alles wieder einlesen kann

hoika 29. Aug 2006 17:38

Re: Grundsätzliche Frage zu Datenbank
 
Hallo,

dann musst du das Backup -> Restore halt kundenfreundlicher gestalten,
also so, dass er kaum Einflussmöglichkiten hat ;)

Bei der Menge Daten könnte man eine DB pro Tag erzeugen.

Der Kunde wählt den Zeitraum aus,
der gebackupt werden soll,
und du schreibst die Tage dann in eine eigene Tabelle,
damit du weisst, wer wann welchen Tag gebackupt hat.

Beim Restore gehst du genauso vor,
nur dass du ja durch die Protokolltabelle
weisst, welche Tage / Zeitraum er maximal zurückholen kann.

Das könnte man auch automatisieren
("geplante Vorgänge" und standardbackupzeitraum , z.B. alles > 1 Woxche weg)


Heiko

Surrounder 29. Aug 2006 19:10

Re: Grundsätzliche Frage zu Datenbank
 
ja das ist auch meine geplante vorgehensweise. Momentan schreibe ich jede Woche die DB in einen Extra Ordern weg. Ich muss auch in der Lage sein eine Statistik zu machen, aber das kann ich bei laufender Anlage vergessen. Eine Statistik über einen Monat zu erstellen dauert etwas länger :-)

Ihr würdet also die Messdaten in eine extra Tabelle machen oder in extra Dateien auf dem Laufwerk ablegen? Prinzipiell ist das verwenden von Blobfeldern aber doch das beste oder hab ich alternativen?


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