1Danke
ERLEDIGT
JA
JA
ANTWORTEN
2
2
ZUGRIFFE
371
371
EMPFEHLEN
-
Hallo Zusammen,
ich habe ein kleines Performanceproblem und frage mich wie ich es optimieren kann.
Der Aufbau ist eine VB 2008 Anwendung die als Datengrundlage eine mdb-Datei hat.
Ich habe mir ein stark typsiertes Dataset angelegt und fülle eine Tabelle mit den Boardmitteln. (siehe Code)
Code :1 2 3 4 5
[SIZE=2]taRabatte.Fill(dsRabatte.Rabatte)[/SIZE] [SIZE=2]dsRabatte.Rabatte.AddRabatteRow(fMatrix.gDebitor, reader([/SIZE][SIZE=2][COLOR=#a31515][SIZE=2][COLOR=#a31515]"MG1"[/COLOR][/SIZE][/COLOR][/SIZE][SIZE=2]).ToString, reader([/SIZE][SIZE=2][COLOR=#a31515][SIZE=2][COLOR=#a31515]"MG2"[/COLOR][/SIZE][/COLOR][/SIZE][SIZE=2]).ToString, reader([/SIZE][SIZE=2][COLOR=#a31515][SIZE=2][COLOR=#a31515]"Bestelltyp"[/COLOR][/SIZE][/COLOR][/SIZE][SIZE=2]).ToString)[/SIZE] [SIZE=2]taRabatte.Update(dsRabatte)[/SIZE]
Direkt im Anschluß des Update, lese ich die komplette Tabelle wieder aus um sie in einem DGV anzuzeigen.
Wenn ich dieses Update auf das Dataset nutze, benötige ich etwa 5 Sekunden bis ich den neuen Eintrag wieder aus der Tabelle lesen kann.
Wenn ich jedoch direkt einen SQL-Insert nutze, habe ich dieses Problem nicht.
Code :1 2 3 4 5 6 7
[SIZE=2]cmd.Connection = gCon[/SIZE] [SIZE=2]cmd.CommandText = [/SIZE][SIZE=2][COLOR=#a31515][SIZE=2][COLOR=#a31515]"INSERT INTO Rabatte "[/COLOR][/SIZE][/COLOR][/SIZE][SIZE=2] & _[/SIZE] [SIZE=2][COLOR=#a31515][SIZE=2][COLOR=#a31515] "(Debitor, MG1, MG2, Bestelltyp)"[/COLOR][/SIZE][/COLOR][/SIZE][SIZE=2] & _[/SIZE] [SIZE=2][COLOR=#a31515][SIZE=2][COLOR=#a31515] "VALUES ("[/COLOR][/SIZE][/COLOR][/SIZE][SIZE=2] & fMatrix.gDebitor & [/SIZE][SIZE=2][COLOR=#a31515][SIZE=2][COLOR=#a31515]", '"[/COLOR][/SIZE][/COLOR][/SIZE][SIZE=2] & reader([/SIZE][SIZE=2][COLOR=#a31515][SIZE=2][COLOR=#a31515]"MG1"[/COLOR][/SIZE][/COLOR][/SIZE][SIZE=2]).ToString & [/SIZE][SIZE=2][COLOR=#a31515][SIZE=2][COLOR=#a31515]"', '"[/COLOR][/SIZE][/COLOR][/SIZE][SIZE=2] & reader([/SIZE][SIZE=2][COLOR=#a31515][SIZE=2][COLOR=#a31515]"MG2"[/COLOR][/SIZE][/COLOR][/SIZE][SIZE=2]).ToString & [/SIZE][SIZE=2][COLOR=#a31515][SIZE=2][COLOR=#a31515]"', '"[/COLOR][/SIZE][/COLOR][/SIZE][SIZE=2] & reader([/SIZE][SIZE=2][COLOR=#a31515][SIZE=2][COLOR=#a31515]"Bestelltyp"[/COLOR][/SIZE][/COLOR][/SIZE][SIZE=2]).ToString & '"[/SIZE][SIZE=2][COLOR=#a31515][SIZE=2][COLOR=#a31515])"[/COLOR][/SIZE][/COLOR][/SIZE] [SIZE=2]cmd.ExecuteNonQuery()[/SIZE]
Mache ich etwas falsch, wenn ich das Dataset nutze? Gibt es eine Möglichkeit die Zugriffe zu optimieren?
-
Wenn du auf Performance aus bist, dann solltest du die Verwaltung deiner Daten selbst übernehmen und auf DataSet, DataAdapter und Co. verzichten. Nur so hast du auch wirklich die Möglichkeit, auf den Ablauf Einfluss zu nehmen und an den wichtigsten Stellen die für dich notwendige Geschwindigkeit zu erreichen. Daher solltest du die Daten ohne DataAdapter und Dataset holen und Aktualisierungen per Command durchführen.
Bei Commands kannst du zusätzlich Performance gewinnen, indem du mehrere Update/Insert-Statements zusammen fasst und durch einen Command-Aufruf abarbeiten läßt. Ebenfalls bietet es sich an, bei zahlreichen Statements, die gleiche Command-Instanz wiederzuverwenden.
-
Ok, also ist das Dataset vielleicht nicht ganz das richtige an dieser Stelle.
Inzwischen bin ich dazu übergegangen, alles ausschließlich mit normalen SQL-Statments zu machen.
Danke für den Tip.
Ähnliche Themen
-
Probleme beim Dataset abfüllen: Fehler in der Eigenschaftenauswertung
Von berger_84 im Forum .NET Windows FormsAntworten: 0Letzter Beitrag: 22.10.09, 11:41 -
Probleme mit DataSet.Update, DataSet.Merge usw.
Von AAF im Forum .NET DatenverwaltungAntworten: 3Letzter Beitrag: 07.01.08, 17:17 -
[VS2005, c#, DataSet] DB wird gelöscht beim Starten der Anwendung. Warum?
Von Reticent im Forum .NET DatenverwaltungAntworten: 2Letzter Beitrag: 29.08.07, 15:58 -
DataSet UND DataReader für UPDATE?
Von Deletemaster im Forum .NET DatenverwaltungAntworten: 1Letzter Beitrag: 16.01.06, 20:09 -
DataSet Update
Von torkel im Forum .NET DatenverwaltungAntworten: 2Letzter Beitrag: 04.09.05, 13:11





Zitieren
Login




