verwendetes Datenbanksystem: <sql server 2k8/express>
immo sieht mein code so aus:
var reader = new SqlCommand(query, db).ExecuteReader();
if (reader == null)
{
throw new NullReferenceException();
}
while (reader.Read())
{
ich kriege enorm viele datensätze (150k) was 10 sekunden dauert...
wenn ich die abfrage im mngmt studio absetze, dann zeigt der ergebnisse an während er noch neue bekommt und addet die hinten ran...
sowas will ich auch bei meiner abfrage - nach dem motto in portionen oder so
ist sowas irgendwie integriert, weil ich glaube dadurch verringert sich die ausfühungszeit... oder bin ich auf irrwegen?!
Du bist doch derjenige der in der While Schleife die Daten verarbeitet.
Da man nicht weiss, was Du da machst, kann man da aber nicht viel zu sagen.
Und 150k Datensätze einem Benutzer zur Anzeige zu bringen, ist auch nicht wirklich sinnvoll.
naja im reader schreibe ich die datensätze in eine liste...
und mit der gefüllten liste wird dann noch was gemacht nach dem reader und db close...
aber zurück zur frage... kann man dan in die liste schreiben beschleunigen...
ja Asynchronous Processing=True aber dann muss die ganze architektur darauf ausgelegt sein...
ja, Multithreading passt nicht in eine einzelne Klasse
Hab mal eine Asynchrone ComboBox geschrieben, da muss man vorher wissen was man tut, bevor man es tut
mbg
Rossegger Robert
mehr fragen mehr wissen
Montag morgen ist die beste Zeit um eine erfolgreiche Woche zu beginnen
Wenn Du die Daten in einem Listview anzeigst kannst Du auch den Virtual Mode benutzen. So dauert selbst die Anzeige von 1 Mio. Datensätzen nur 1 sec (denkt der User).
Ist aber nicht so ganz einfach zu implementieren.
Grüße Bernd
Workshop : Datenbanken mit ADO.NET
Xamarin Mobile App : Finderwille Einsatz App
Unternehmenssoftware : Quasar-3