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 

verwaltbare Datenbankgröße limitiert?



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!

07.09.2007, 07:32
Beitrag #1

BastiFantasti Offline
LVF-Gelegenheitsschreiber
**


Beiträge: 77
Registriert seit: Sep 2007

7.1 - 2013
2007
DE

73527
Deutschland
verwaltbare Datenbankgröße limitiert?
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
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
Anzeige
07.09.2007, 08:24
Beitrag #2

Benjamin Fuchs Offline
LVF-Gelegenheitsschreiber
**


Beiträge: 86
Registriert seit: Aug 2007

8.20
2007
kA

90427
Deutschland
verwaltbare Datenbankgröße limitiert?
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.

Ich würde mich ja gerne mit Dir geistig duellieren, aber ich sehe Du bist unbewaffnet.
--------------------
Der Vorteil von Klugheit ist, dass man sich dumm stellen kann. Das Gegenteil ist schwieriger.
--------------------
Damit immer mehr immer weniger tun können, müssen immer weniger immer mehr tun.
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
07.09.2007, 09:54
Beitrag #3

rolfk Offline
LVF-Guru
*****


Beiträge: 2.302
Registriert seit: Jun 2007

alle seit 6.0
1992
EN

2901GG
Niederlande
verwaltbare Datenbankgröße limitiert?
' schrieb: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.

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

Rolf Kalbermatter
Technische Universität Delft, Dienst Elektronik und Mechanik
https://blog.kalbermatter.nl
Webseite des Benutzers besuchen Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
07.09.2007, 13:42
Beitrag #4

BastiFantasti Offline
LVF-Gelegenheitsschreiber
**


Beiträge: 77
Registriert seit: Sep 2007

7.1 - 2013
2007
DE

73527
Deutschland
verwaltbare Datenbankgröße limitiert?
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
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
07.09.2007, 14:28
Beitrag #5

Benjamin Fuchs Offline
LVF-Gelegenheitsschreiber
**


Beiträge: 86
Registriert seit: Aug 2007

8.20
2007
kA

90427
Deutschland
verwaltbare Datenbankgröße limitiert?
@rolfk:
Natürlich kommt es auf die Komplexibilität des SQL-Querys anSmile

@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.

Ich würde mich ja gerne mit Dir geistig duellieren, aber ich sehe Du bist unbewaffnet.
--------------------
Der Vorteil von Klugheit ist, dass man sich dumm stellen kann. Das Gegenteil ist schwieriger.
--------------------
Damit immer mehr immer weniger tun können, müssen immer weniger immer mehr tun.
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
07.09.2007, 14:55
Beitrag #6

BastiFantasti Offline
LVF-Gelegenheitsschreiber
**


Beiträge: 77
Registriert seit: Sep 2007

7.1 - 2013
2007
DE

73527
Deutschland
verwaltbare Datenbankgröße limitiert?
' schrieb:@rolfk:
Natürlich kommt es auf die Komplexibilität des SQL-Querys anSmile

@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.

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?
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
Antwort schreiben 


Gehe zu: