Ich versuche, eine große. NET-Anwendung zu erstellen, die einige Daten aus einer Datenbank behandelt (alle möglichen Operationen auf der Datenbank, Einfügungen, Ansichten, Sortierung, zeilenbasierte Berechnungen ...).Ist DataSet im Vergleich zu DataReader wirklich langsam?
Ich bin kein Experte in ADO und möchte sicherstellen, dass meine Architektur optimal ist. Also versuche ich DataSet vs DataReader zu vergleichen, um zu wissen, wann ich welches verwende.
Ich habe eine Dummy-Tabelle in Oracle erstellt und ich füllte mit 2 000 000 Datensätzen. Wenn ich die Größe der Tabelle mit Hilfe der Abfrage überprüfe:
Ich bekomme so etwas wie 100 MB für diese Tabelle.
Ich lese in MSDN, dass DataSet alles über die Tabelle lädt, während DataReader ein Vor-nur-Lese-Tool ist, das schneller ist.
ich bin versucht, testet die Grenzen eines jeden, also schrieb ich den folgenden Code:
SQL = "Select * from HugeTable"
Command = New OracleCommand(SQL, Me.Connection)
TempDataAdapter = New OracleDataAdapter(Command)
TempDataAdapter.FillSchema(DataSet, SchemaType.Source, FullTableName)
TempDataAdapter.Fill(DataSet, FullTableName)
Wenn mein Verständnis richtig ist, ich bin exepecting die letzte Zeile 100 MB aus der Datenbank zu laden Das wird einige Sekunden dauern (die Datenbank befindet sich im selben Computer) Aber wenn ich diesen Code ausführe, ist es augenblicklich (es läuft in ein paar hundertstel Sekunden und ich kann nicht verstehen, warum es ist.
Gibt es etwas Ich vermisse?
Warum nach unten gehen? Was ist falsch an der Frage? –
Nicht mein Downvote, aber denken Sie darüber nach: Was denken Sie, der DataAdapter verwendet, um ein DataSet zu füllen? – Steve
Entschuldigung. Ich habe deine Frage nicht verstanden. –