hallo erstmal ich bin neu hier.
ich habe dieses problem schon in einem anderen entwicklerforum angesprochen, aber da konnte man mir leider nicht weiterhelfen. es geht um folgendes:
in unserer firmendatenbank liegen ca 3 mio datensätze. es sind messdaten die zur verwaltung aufgenommen wurden.
jeder dieser datensätze besteht aus einem GUID der als primary key fungiert. dann noch ein datum, ein zahlenwert und die zuordnung dieses zahlenwertes zu einem von insgesamt 4 zeitsparten.
wie wir herausgefunden haben, sind die zeitsparten falsch zugeordnet. nun hab ich die aufgabe eine lösung für dieses problem zu finden. das naheliegendsde war die erstellung eines c#-programmes. das funktioniert auch ganz gut, ich lese die entsprechenden werte mittels eines ganz einfachen SQLCommands aus und verändere sie.
das problem liegt aber jetzt im updatebefehl. das codefragment:
String querry = "update edsrawdatas set fascia = '" + newFascia + "' ,status2 = '" + oldFascia + "' where rawid = '" + ID + "'";
SqlCommand com = new SqlCommand(querry, con);
affected += com.ExecuteNonQuery();
ist eigentlich nichts besonderes, ich update jedoch jeden datensatz einzelln und wie man sieht benütze ich eine einfache whereklausel die den primary-key vergleicht. das problem ist, dass das updaten JEDES datensatzes ca 3-4(!!!) sekunden dauert, was bei einer menge von einigen 10000 datensätzen klarerweise nicht tragbar ist.
meine frage ist: gibt es unter c# eine möglichkeit so einen update-befehl irgendwie zu optimieren? bringen datasets irgendwelche vorteile (meiner erfahrung nach sind sie zwar sehr praktisch jedoch eher langsamer als eine lösung wie die obige).
wäre für jede hilfe wirklich dankbar!
mfg
soulspirit
ich habe dieses problem schon in einem anderen entwicklerforum angesprochen, aber da konnte man mir leider nicht weiterhelfen. es geht um folgendes:
in unserer firmendatenbank liegen ca 3 mio datensätze. es sind messdaten die zur verwaltung aufgenommen wurden.
jeder dieser datensätze besteht aus einem GUID der als primary key fungiert. dann noch ein datum, ein zahlenwert und die zuordnung dieses zahlenwertes zu einem von insgesamt 4 zeitsparten.
wie wir herausgefunden haben, sind die zeitsparten falsch zugeordnet. nun hab ich die aufgabe eine lösung für dieses problem zu finden. das naheliegendsde war die erstellung eines c#-programmes. das funktioniert auch ganz gut, ich lese die entsprechenden werte mittels eines ganz einfachen SQLCommands aus und verändere sie.
das problem liegt aber jetzt im updatebefehl. das codefragment:
String querry = "update edsrawdatas set fascia = '" + newFascia + "' ,status2 = '" + oldFascia + "' where rawid = '" + ID + "'";
SqlCommand com = new SqlCommand(querry, con);
affected += com.ExecuteNonQuery();
ist eigentlich nichts besonderes, ich update jedoch jeden datensatz einzelln und wie man sieht benütze ich eine einfache whereklausel die den primary-key vergleicht. das problem ist, dass das updaten JEDES datensatzes ca 3-4(!!!) sekunden dauert, was bei einer menge von einigen 10000 datensätzen klarerweise nicht tragbar ist.
meine frage ist: gibt es unter c# eine möglichkeit so einen update-befehl irgendwie zu optimieren? bringen datasets irgendwelche vorteile (meiner erfahrung nach sind sie zwar sehr praktisch jedoch eher langsamer als eine lösung wie die obige).
wäre für jede hilfe wirklich dankbar!
mfg
soulspirit
Comment