Laden...

sql srv: ergebnisse schon vor ende des readers nutzen

Erstellt von numpsy vor 15 Jahren Letzter Beitrag vor 15 Jahren 850 Views
N
numpsy Themenstarter:in
231 Beiträge seit 2007
vor 15 Jahren
sql srv: ergebnisse schon vor ende des readers nutzen

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?!

F
10.010 Beiträge seit 2004
vor 15 Jahren

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.

N
numpsy Themenstarter:in
231 Beiträge seit 2007
vor 15 Jahren

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

N
numpsy Themenstarter:in
231 Beiträge seit 2007
vor 15 Jahren

ja Asynchronous Processing=True aber dann muss die ganze architektur darauf ausgelegt sein...

S
443 Beiträge seit 2008
vor 15 Jahren

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

3.825 Beiträge seit 2006
vor 15 Jahren

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