Hallo Leute!
Ich habe einen Tabelle im SQL-Server, die wie folgt aufgebaut ist (ist so vorgegeben und kann nicht geändert werden):
<PRE>
Name Datentyp Größe
Letzter_Zeitstempel datetime 8
Knotenname char 10
Tagname char 30
Beschreibung char 133
Wert char 13
Einheit char 13
Alarmstatus char 9
Alarmpriorität char 10
Alarmbereiche char 255
Bedienername char 32
Bedienerstation char 10
Meldungstyp char 11
Erster_Zeitstempel datetime 8
</PRE>
Die Tabelle enthält über 1000000 Datensätze!
Ich muss eine Oberfläche entwickeln (Windowsforms), mit der die Anwender diese Datenbank auswerten kann.
Es kann vorkommen, dass bei einer Filterabfrage 20000 und mehr Datensätze zurückgegeben werden, die in einem Grid angezeigt werden sollen. Die Abfrage lässt sich nicht weiter eingrenzen, deshalb muss ich mit der großen Datenmenge arbeiten!
Wenn ich mit SqlDataAdapter und Datagrid arbeite ist die Abfrageperformance akzeptabel aber es platz mir der Arbeitsspeicher, da alle Daten im RAM abgelegt werden.
Mit SqlDataReader und ListView kann ich die Datenmenge im RAM verringern, da ich allen Müll (Strings haben feste Länge und die ganzen Leerzeichen werden entfernt) bereinige bevor ich den ListView fülle, aber die Abfrage mit 'while (myData.Read())' dauert ewig (Minuten bis Stunden)!
Was ich brauche ist ganz einfach das Verhalten des 'SQL Query Analyzers'. Die Abfrage geht schnell und die Daten werden in einer Datei abgelegt von der immer nur ein Teil in das Grid zum scrollen geladen wird.
Ach ja die Daten in der Tabelle muss ich bei der Anzeige nach 'Letzter_Zeitstempel' sortieren.
Bitte, bitte Hilfe!!!! , ich beiße sonst noch in den Tisch, mir fällt einfach nichts mehr ein.
Grüsse und vielen Dank,
H.-P.
Ich habe einen Tabelle im SQL-Server, die wie folgt aufgebaut ist (ist so vorgegeben und kann nicht geändert werden):
<PRE>
Name Datentyp Größe
Letzter_Zeitstempel datetime 8
Knotenname char 10
Tagname char 30
Beschreibung char 133
Wert char 13
Einheit char 13
Alarmstatus char 9
Alarmpriorität char 10
Alarmbereiche char 255
Bedienername char 32
Bedienerstation char 10
Meldungstyp char 11
Erster_Zeitstempel datetime 8
</PRE>
Die Tabelle enthält über 1000000 Datensätze!
Ich muss eine Oberfläche entwickeln (Windowsforms), mit der die Anwender diese Datenbank auswerten kann.
Es kann vorkommen, dass bei einer Filterabfrage 20000 und mehr Datensätze zurückgegeben werden, die in einem Grid angezeigt werden sollen. Die Abfrage lässt sich nicht weiter eingrenzen, deshalb muss ich mit der großen Datenmenge arbeiten!
Wenn ich mit SqlDataAdapter und Datagrid arbeite ist die Abfrageperformance akzeptabel aber es platz mir der Arbeitsspeicher, da alle Daten im RAM abgelegt werden.
Mit SqlDataReader und ListView kann ich die Datenmenge im RAM verringern, da ich allen Müll (Strings haben feste Länge und die ganzen Leerzeichen werden entfernt) bereinige bevor ich den ListView fülle, aber die Abfrage mit 'while (myData.Read())' dauert ewig (Minuten bis Stunden)!
Was ich brauche ist ganz einfach das Verhalten des 'SQL Query Analyzers'. Die Abfrage geht schnell und die Daten werden in einer Datei abgelegt von der immer nur ein Teil in das Grid zum scrollen geladen wird.
Ach ja die Daten in der Tabelle muss ich bei der Anzeige nach 'Letzter_Zeitstempel' sortieren.
Bitte, bitte Hilfe!!!! , ich beiße sonst noch in den Tisch, mir fällt einfach nichts mehr ein.
Grüsse und vielen Dank,
H.-P.
Comment