INFO: Dieses Forum nutzt Cookies...
Cookies sind für den Betrieb des Forums unverzichtbar. Mit der Nutzung des Forums erklärst Du dich damit einverstanden, dass wir Cookies verwenden.

Es wird in jedem Fall ein Cookie gesetzt um diesen Hinweis nicht mehr zu erhalten. Desweiteren setzen wir Google Adsense und Google Analytics ein.


Antwort schreiben 

Datenbanksätze aus Arbeitsspeicher entfernen



Wenn dein Problem oder deine Frage geklärt worden ist, markiere den Beitrag als "Lösung",
indem du auf den "Lösung" Button rechts unter dem entsprechenden Beitrag klickst. Vielen Dank!

09.08.2013, 09:22
Beitrag #3

Schü Offline
LVF-Gelegenheitsschreiber
**


Beiträge: 68
Registriert seit: Sep 2010

2010 Student, 2010, 2012 SP1
2010
DE_EN

08427
Deutschland
RE: Datenbanksätze aus Arbeitsspeicher entfernen
Danke schonmal für doe erstem Gedanken,

Zitat:Ist es wirklich notwendig soviele Datensätze aufeinmal von der Datenbank zu lesen? Zur Problemvermeidung im Ansatz würde es doch genügen. Jeweil einen geeigneten kurzen Zeitabschnitt von der DB zu lesen und die reduzierten Daten wieder hineinzuschreiben. Angefangen mit der Reduktion auf Minutenintervall und weitere Durchläufe für die Reduktion auf Stunder, Tage etc.

Ich wollte soviele Daten wie möglich mit einem Durchgang abarbeiten und dachte mir, wenn ich am Endes des VIs den Speicher freigebe ist das ganze nicht so schlimm, dass zwischenzeitlich mal bis zu 4GB Arbeitsspeicher von LabView belegt werden. Aber so eine "Schritt-für-Schritt-Reduktion" muss ich sowieso noch vorsehen, da es ja sein kann, dass eine Datenbank bspw. 1Mio Datensätzen enthält, die nie und nimmer in den Speicher passen. Ich habe auch eine erweiterte/alternative VI-Version, bei der ich nur einen Teil der Datensätze auslese, da nur beim ersten Durchlauf alle bereits bestehenden Daten reduziert werden müssen, wenn ein paar Tage später das VI erneut gestartet wird, sollen ja nicht wieder alle Daten, sondern nur die neu hinzugekommen in die 1-Minute-Tabelle entsprechend hinzugefügt werden.
Den Vorschlag von dir habe ich also schon teilweise umgesetzt bzw. im Hinterkopf gehabt. Allerdings bleibt das Problem bestehen, dass ich die Daten in den Arbeitsspeicher schreibe (egal wieviele) und sie nach dem Ende des VIs noch scheinbar drin stehen.

Zitat:Aber nun noch kurz zu Deinem Problem: Wie verhält sich Dein VI, wen Du zum Abschluß noch einen Durchlauf startest und dabei nur sehr wenige Daten oder besser eine leere Menge von der DB anforderst, dabei aber natürlich nichts in die DB zurückschreibst, in dann die Speicherfreigabe anforderst?

Ich habe das jetzt nocheinmal explizit an zwei Tabellen getestet. Zunächst habe ich die große Tabelle (205000x29) geladen, wodurch der Speicherbedarf von 2,5GB auf 5,45GB anstieg. Danach habe ich das VI mit einer kleineren Tabelle (67500x29) durchlaufen lassen, was auch problemlos funktionierte, ohne dass der Speicherbedarf anwuchs und nach dem Ende lag er weiterhin bei 5,45GB/5,35GB. Wenn ich das VI jetzt allerdings in einem dritten Durchlauf erneut mit der großen Tabelle ausführe, dann steigt der Speicherbedarf solang an, bis halt die Maximalgrenze erreicht wird und LabView gibt den Fehler ""Für diesen Vorgang ist nicht genügend Speicher verfügbar" aus.



Grundsätzliche Vermutung:
Es scheint mir so, als würde LabView für das große Array einen Speicherplatz reservieren und beim folgenden kleinen Array, wird dann der gleiche Speicherbereich genutzt, allerdings nur für einen bestimmten Anteil. Wird jetzt wieder ein großes Array benötigt, so nutzt LabView nicht den bereits reservierten großen Speicherbereich, sondern sieht nur "Aha kleines Array, also muss ich meinen Speicherbereich so und so weit erweitern" - nutzt also immer nur den "letzten Wert" und erweitert diesen dann entsprechend, wodurch der Speicherbedarf von LabView weiter ansteigt.
Das klingt alles etwas verwirrend, aber könnte es so sein?

Wenn dem so ist, dann liese sich mit deinem Vorschlag (max. 1000Zeilen lesen) der Speicherbereich ja konstant halten, oder?
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
Antwort schreiben 


Nachrichten in diesem Thema
RE: Datenbanksätze aus Arbeitsspeicher entfernen - Schü - 09.08.2013 09:22

Möglicherweise verwandte Themen...
Themen Verfasser Antworten Views Letzter Beitrag
  HTML Tags entfernen ares2013 8 8.501 24.06.2021 11:01
Letzter Beitrag: ares2013
  OHNE VI: Arbeitsspeicher läuft voll ddrayss 8 6.457 12.10.2019 17:05
Letzter Beitrag: ddrayss
  aus LV komponenten entfernen... gottfried 3 4.231 10.01.2019 15:54
Letzter Beitrag: gottfried
  Wert aus 1-D Array entfernen Stephan235 2 3.847 16.03.2018 15:53
Letzter Beitrag: Stephan235
  Leerzeichen im String entfernen Hydrogencarbonat 3 7.346 22.06.2016 07:24
Letzter Beitrag: GerdW
  Arbeitsspeicher läuft voll Michael1984 10 10.775 04.03.2015 09:45
Letzter Beitrag: Y-P

Gehe zu: