verwaltbare Datenbankgröße limitiert? - Druckversion +- LabVIEWForum.de (https://www.labviewforum.de) +-- Forum: LabVIEW (/Forum-LabVIEW) +--- Forum: LabVIEW Allgemein (/Forum-LabVIEW-Allgemein) +---- Forum: Datenbank & File IO (/Forum-Datenbank-File-IO) +---- Thema: verwaltbare Datenbankgröße limitiert? (/Thread-verwaltbare-Datenbankgroesse-limitiert) |
verwaltbare Datenbankgröße limitiert? - BastiFantasti - 07.09.2007 07:32 Hallo, ich lese an einem Gerät eine Reihe von Messwerten aus und schreibe diese mit LabVIEW (LV 8.2, Datenbank Toolkit) in eine SQL Datenbank (pro Datensatz ca. 4,4kb). So sammeln sich bei 120 Einträgen pro Sekunde schnell große Datenmengen. Soweit auch noch kein Problem. Das Problem tritt auf, wenn ich ausgewählte Datensätze aus der Datenbank auslesen will. Bsp: Die Daten kommen von unterschiedlichen Kanälen (1, 2, 3). Ich will nacheinander die Werte der einzelnen Kanäle abfragen. Das funktioniert bis zu einer Datenbank größe von 3gb ganz gut (Auslesen von 75000 Messwerten in 45sek). Steigt die größe der Datenbank allerdings auf ca 25gb macht LV gar nichts mehr. Deshalb die Frage: Hat jemand schon Erfahrungen damit gemacht, dass eine SQL Datenbank eine bestimmte größe nicht übersteigen darf? Grüße Basti verwaltbare Datenbankgröße limitiert? - Benjamin Fuchs - 07.09.2007 08:24 Hallo, also mit LV und Datenbanken hab ich leider noch keine Erfahrung. Allerdings mit Datenbanken in anderen Programmiersprachen. Welche Datenbank wird eingesetzt und welches Serversystem, läuft die DB auf einem extra Server und wie ist sie Aufgebaut. Sind entsprechende Index erstellt worden, ist vorallem hilfreich wenn immer wieder die selben Daten abgefragt werden. Was performance steigern kann sind auch QueryCache bzw. andere Einstellungen. Wieviel GB Ram hat der Server, denn es gibt soviel ich weiß Datenbanktypen die im RAM abgelegt werden um dort schnell arbeiten zu können, wenn die DB dann aber größer als der RAm wird sie wieder langsam. Vom Gefühl her würde ich sagen, dass LV es egal sein dürfte wie groß die Datenbank ist da ja nur SQL Querys geschickt werden und Daten empfangen. Welche Daten werden ausgelesen (Immer die Gesamten 25GB????) Ich finde eine Abfrage von 75.000 Datensätzen in 45 Sekunden nicht gerade schnell. Eventuell lassen sich ja die Daten schon über SQL Querys vorverarbeiten, damit eine kleinere Datenmenge übertragen wird. verwaltbare Datenbankgröße limitiert? - rolfk - 07.09.2007 09:54 ' schrieb:Hallo, Also welche Datenbank und Version wäre schon sehr interessant. Etwas wie Oracle, oder SQL Server (nicht die freie Desktopedition da diese auf 2GB per Datenbank limitiert ist) wird es ja wohl sicher sein. Access und Co können ja wohl nicht mit solchen Datenmengen umgehen und werden hoffentlich von niemandem seriös dafür in Betracht gezogen. Ob 75.000 Datensätzen in 45 Sekunden schnell sind oder nicht hängt auch von der Art und Weise der Query ab. Wenn da noch mehr oder weniger komplizierte Bedingungsklauseln und Sortkommandos bei sind kann das schon mal nicht so schlecht sein. Ansonsten Verwendung von Recordsets anstelle von einzelnen Fetchs per Reihe kann auch extrem viel Unterschied machen. Rolf Kalbermatter verwaltbare Datenbankgröße limitiert? - BastiFantasti - 07.09.2007 13:42 Hallo, Als Datenbank verwende ich Firebird in der aktuellen 2.0er Version. Angebunden an LV wird sie über die Firebird ODBC Schnittstelle. Die Datenbank läuft auf dem selben Rechner wie LabVIEW. Der Rechner verfügt über 1Gig an Ram. @Benjamin Wie funktioniert das mit Querycache? ... nein, es müssen nicht immer die gesamten 25gig ausgelesen werden. Die Tabelle die durchsucht wird erstellt zu jedem Eintrag einene Timestamp und es wird z.B. nach einem Zeitintervall gesucht. Ich bin am Versuchen so viel wie möglich der Rechenarbeit direkt in der SQL Datenbank mit Procedures, Triggers und Sequences zu erschlagen. Kämpfe da grad aber mit dem Problem, dass ich von einer Funktion nur einen Rückgabewert erhalten kann. Also ich kann nicht 10 Reihen einer Spalte auslesen und diese als Returm Wert in LV übergeben. ach ja, wenn ich mich direkt mit der Datenbank verbinde (über shell) funktionieren die Abfragen.....) Danke Basti verwaltbare Datenbankgröße limitiert? - Benjamin Fuchs - 07.09.2007 14:28 @rolfk: Natürlich kommt es auf die Komplexibilität des SQL-Querys an @BastiFantasti: Ist dann das Feld "Timestamp" als Index angelegt? Man sollte schauen, dass alle Feldabfragen der Where-Klausel als Index angelegt sind (Zumindest nachdenen man gruppiert und sucht) Wie das mit dem Query-Cache bei Firebird funktioniert weiß ich nicht. Allgemein legt die Datenbank dann die Abfragen und Ergebnisse in den Ram und kann diese beim nächsten mal schneller abfragen, da sie schon im RAm geladen sind. Auch hab ich schon gehört, dass manche Datenbanken es anbieten dass z.b. die letztn 500 MB im Ram abgelegt werden, dies bietet sich an, wenn man bei den Abfragen nur die letzteren Werte abfragen will. Dass es direkt als SQL funktioniert und über LV nicht wundert mich. verwaltbare Datenbankgröße limitiert? - BastiFantasti - 07.09.2007 14:55 ' schrieb:@rolfk: der Timestamp ist nicht als index angelegt. ich suche nach unterschiedlichen feldern z.b.: eine tabelle besteht aus: Ref_ID Datumzeit Job Kanal Wert1 Wert2 Wert3 Blobfeld ref_id stellt den zusammenhang zu den verwendeten settings in einer weiteren Tabelle dar (angelegt als integer references settings_db(id) datumzeit ist ein als trigger erstellter timestamp den sql selbstständig einfügt. nun sollen alle "Wert1" von Kanal "1" im der Zeit zwischen Zeit1 und Zeit2 ausgegeben werden oder alle "Wert2" von Kanal"2" .... und wie gesagt bis zu einer DB Größe von 3gig kein Problem... welche Vorteile bringt die Indizierung der Spalten? und kann ich theoretisch alle Zeilen indizieren? |