Auch, wenn Du das Thema als beantwortet siehst... Vielleicht hilft Dir dieser Denkanstoss dennoch, die Datenmeng zu reduzieren.
Ein Messpunkt liefert Dir im Grunden einen einzigen relevanten Wert: dpvalue
Das aber zu hauf, 31 Millionen Werte.
Welche Genauigkeit ist denn nötig. Wenn deine Werte, sagen wir mal, alle zwischen 0 und 1 liegen (beliebig skalierbar), so hast du bei 31 Millionen Werten eine Auflösung von 1/31.000.000, d.h. eine Auflösung von 1:3*10^-8
Ist diese Genauigkeit wirklich nötig ? Wenn nicht, hier mal meine Idee:
Zitat von
Tomektor:
commando := 'INSERT INTO dp1 VALUES (1137061871, 0.568),(1137061872, 0.654),(1137061873, 0.564)';
Wenn ich jetzt mal frech bin, und bei dieser Konstellation davon ausgehen, dass nur eine Genauigkei von 1:1000 ausreicht, so speichere jeden einzelnen möglichen Wert erstmal in einer Tabelle ab, mit deiner gewünschten Genauigkeit, also
Code:
MoeglichenWerte
1 0.000
2 0.001
3 0.002
4 0.003
..
1.000
Deine eigentliche Messreihe referiert auf diese möglichen Werte, und zwar kummulativ.
Code:
Messwerte:
ID int
Datenpunkt int (referiert auf eine Tabelle Datenpunkte)
Wert int (referiert auf MoeglichenWerte)
Anzahl int
Wenn für Datenpunkt ein Wert 0.123 reinkommt, so suchst du nach 0.123 in der Moeglichenwertetabelle, und holst Dir dessen ID (=123).
Suche in Messwerte nach dem unique Record mit gewünschtem Datenpunkt und Wert=123. Findest Du keinen, legst Du einen an. Anzahl setzt du auf 1. Ist bereits ein Record enthalten, so inkrementierst du Anzahl um 1.
10 Messwerte (für gleiche Datenpunkt jetzt mal vereinfacht:
Code:
0.100
0.200
0.250
0.250
0.100
0.300
gibt für Dich in der Messwerte:
Code:
ID Datenpunkt Wert Anzahl
1 1 200 1
2 1 250 2
3 1 100 1
4 1 300 1
Durch diese Struktur reduzierst Du dein Datenaufkommen drastisch, und dennoch sind alle Werte gespeichert.
Einziger Wermutstropfen: eine Information geht Dir so dennoch verloren: wann der Messpunkt aufgenommen wurde.
Ein wirklich ernst gemeinter Rat von (wohl jetzt schon zum 3.): Auch wenn diese neue Struktur jetzt dein Problem nicht ganz abdeckt, mach Dir auf jeden Fall mal ein paar neue Gedanken, wie Du diese Datenmenge reduzieren kannst. Eine gescheite Datenstruktur ist das A und O. Lieber hier bischen Hirnschmalz investieren als einfach blind Milliarden Datensätze zu speichern.
Übrigens noch was zu deinem vorgeschlagenem Rechner mit 4 GB
RAM. Alles schön und gut, aber dein
DBMS muss dieses
RAM auch nutzen können. Die
MSDE fällt da schon mal weg, ich glaub die ist limitiert auf 1 GB
RAM. Willst Du den restlichen Speicher ausnutzen, so muss der grosse Bruder her (
MSSQL Server).