DataSet-Serialisierung und Remoting Leistung verbessern

SPRACHE AUSWÄHLEN SPRACHE AUSWÄHLEN
Artikel-ID: 829740 - Produkte anzeigen, auf die sich dieser Artikel bezieht
Alles erweitern | Alles schließen

Zusammenfassung

Dieser Artikel erläutert die Leistungsoptimierung für größere .NET Framework System.Data.DataSet -Klassen und stellt eine Wrapperklasse Beispiel Serialisierung, die optimiert effizienter serialisieren und Deserialisieren größere DataSet -Klassen bereit.

Weitere Informationen

Wenn Sie ein Objekt System.Data.DataSet zwischen Prozessen übergeben, ist .NET Framework Remoting verwendet, um serialisiert werden, an den Transport, und die DataSet -Klasse zu deserialisieren. Wenn Sie ein DataSet übergeben-Klasse wieder von einem .NET-Webdienst intern die Microsoft .NET Framework- System.Xml.Serialization.XMLSerializer -Klasse wird zum Serialisieren der DataSet -Daten an den Client zurück. Wenn Sie ein DataSet wieder aus einem verwalteten Objekt, die in COM+ gehostet wird übergeben, wird die BinaryFormatter -Klasse von .NET Framework Remoting verwendet. Unabhängig von der Remoting-Mechanismus, der von .NET Framework verwendet wird, konvertiert die DataSet -Klasse immer die internen Daten in XML beim Serialisieren der Daten.

Die DataSet -Klasse, in dem Microsoft .NET Framework 1.0 und .NET Framework 1.1 enthalten funktioniert effizient für kleine Mengen von Daten (Hunderte von Zeilen) im DataSet über .NET Framework Remoting serialisieren. Der Serialisierungsmechanismus ist ineffizient, mit einem größeren DataSet (mehrere Tausend Zeilen) und führt zu großen transient (kurze Dauer) Speicherzuordnungen. Diese Speicherzuordnungen reduzieren Skalierbarkeit von Anwendungen.

Hinweis: Eine vorübergehende Speicherreservierung ist eine kurzlebige Speicherzuordnung, die während der Verarbeitung der einige Abschnitte des Codes auftritt. Daher während der Serialisierung, während die Remoting und während der Deserialisierung eine DataSet -Klasse, verschiedene verwaltete Objekte sind reserviert und intern von .NET Framework Remoting zur Verarbeitung der Anforderung Remoting freigegeben. Reservieren und Freigeben von größeren und größere verwaltete Objekte fügt zusätzliche Druck in .NET Memory Management System, und allgemeine Skalierbarkeit reduziert. Beispielsweise kann eine Anwendung mit vielen Snapshotdatenbanken Methodenaufrufe großen vorübergehende Speicherzuordnungen generieren zuwenig Arbeitsspeicher vor Abschluss alle Methodenaufrufe ausführen.

Sie können Leistung Serialisierung und Remoting für größeren DataSets erheblich verbessern, mithilfe von Wrapperklassen für eine ordnungsgemäß entworfene Ersatzzeichen Typ oder Serialisierung. Weitere Informationen über einen Ersatzzeichen-Mechanismus oder einen Wrapper-Mechanismus (oder beide) mit der .NET Framework- DataSet -Klasse den folgenden Microsoft Developer Network (MSDN)-Website:
http://msdn.microsoft.com/msdnmag/issues/02/12/cuttingedge
Dieser Artikel bietet jedoch kein vollständiges Beispiel zum Implementieren ein Ersatzzeichen DataSet oder eine Serialisierung Wrapper-Klasse.

Dieser Artikel enthält eine Beispiel Serialisierung Wrapper-Klasse, die effizienter serialisieren und Deserialisieren größeren DataSets optimiert ist. Die Klasse wird vorübergehender Speicherzuordnungen im Vergleich zum Remoting eines typischen DataSet erheblich reduziert. Große Reduzierung der vorübergehende Speicherzuordnungen außerdem Remoting End-to-End-Zeit verbessern und Skalierbarkeit verbessern, wenn mit einem größeren DataSet .

Das Beispiel stellt eine Serialisierung Wrapperklasse mit dem Namen DataSetSurrogate bereit. Die DataSetSurrogate -Klasse wird als eine Wrapperklasse für eine beliebige DataSet verwendet, die Sie remote möchten. Die Serverkomponente übergibt den DataSet , der Sie dem Konstruktor DataSetSurrogate und übergibt dann die DataSetSurrogate -Klasse an dem Client zurück. Auf der Clientseite wird die DataSetSurrogate.ConvertToDataSet -Methode verwendet, um das DataSet aus der DataSetSurrogate -Klasse extrahieren.

Die DataSetSurrogate -Klasse ist als Serializable markiert, und alle Felder in der DataSetSurrogate -Klasse sind auch serialisierbare Klassen. Daher beim Remotecomputer das DataSetSurrogate -Objekt, die Remotinginfrastruktur automatisch serialisiert und deserialisiert das DataSetSurrogate -Objekt und alle seine Felder. Der Schlüssel Serialisierung Vorteil der DataSetSurrogate -Klasse über die DataSet -Klasse ist, dass die DataSetSurrogate -Klasse die Daten in einem binären Format serialisiert. Mit ein binäres Format serialisiert ist wesentlich effizienter im Arbeitsspeicher und CPU als das vorhandene DataSet -XML-Serialisierungsformat.

Hinweis: Zum Maximieren der Leistungsvorteil dieser Serialisierung Wrapperklasse verwendet, die .NET Framework- System.Runtime.Serialization.Formatters.Binary.BinaryFormatter Wenn Klasse Remoting. Remoting unter Verwendung der .NET Framework System.Runtime.Serialization.Formatters.SOAP.SoapFormatter -Klasse ist nicht so effizient, wenn Sie die DataSetSurrogate -Klasse verwenden.

Die folgende Datei steht im Microsoft Download Center zum Download zur Verfügung:
Bild minimierenBild vergrößern
Download
Download the SurrogateSample.exe package now.Weitere Informationen zum Download von Microsoft Support-Dateien finden Sie in folgendem Artikel der Microsoft Knowledge Base:
119591So erhalten Sie Dateien vom Microsoft Support im Internet
Microsoft hat diese Datei auf Viren überprüft. Microsoft hat dazu die neueste Software zur Virenerkennung verwendet, die zum Zeitpunkt der Bereitstellung verfügbar war. Die Datei befindet sich auf Servern mit verstärkter Sicherheit, wodurch nicht autorisierte Änderungen an der Datei weitestgehend verhindert werden.

Zugriff auf die Beispieldateien

Speichern Sie die SurrogateSample.exe-Datei auf Laufwerk C: auf dem Computer. Von dort aus können Sie die Ordnerstruktur extrahieren. Es ist eine Readme-Datei in jedem Ordner, die zusätzliche Anweisungen enthält.

Eigenschaften

Artikel-ID: 829740 - Geändert am: Mittwoch, 4. August 2004 - Version: 1.4
Die Informationen in diesem Artikel beziehen sich auf:
  • Microsoft .NET Framework 1.0
  • Microsoft .NET Framework 1.1
Keywords: 
kbmt kbdownload kbinfo KB829740 KbMtde
Maschinell übersetzter Artikel
Wichtig: Dieser Artikel wurde maschinell und nicht von einem Menschen übersetzt. Die Microsoft Knowledge Base ist sehr umfangreich und ihre Inhalte werden ständig ergänzt beziehungsweise überarbeitet. Um Ihnen dennoch alle Inhalte auf Deutsch anbieten zu können, werden viele Artikel nicht von Menschen, sondern von Übersetzungsprogrammen übersetzt, die kontinuierlich optimiert werden. Doch noch sind maschinell übersetzte Texte in der Regel nicht perfekt, insbesondere hinsichtlich Grammatik und des Einsatzes von Fremdwörtern sowie Fachbegriffen. Microsoft übernimmt keine Gewähr für die sprachliche Qualität oder die technische Richtigkeit der Übersetzungen und ist nicht für Probleme haftbar, die direkt oder indirekt durch Übersetzungsfehler oder die Verwendung der übersetzten Inhalte durch Kunden entstehen könnten.
Den englischen Originalartikel können Sie über folgenden Link abrufen: 829740
Microsoft stellt Ihnen die in der Knowledge Base angebotenen Artikel und Informationen als Service-Leistung zur Verfügung. Microsoft übernimmt keinerlei Gewährleistung dafür, dass die angebotenen Artikel und Informationen auch in Ihrer Einsatzumgebung die erwünschten Ergebnisse erzielen. Die Entscheidung darüber, ob und in welcher Form Sie die angebotenen Artikel und Informationen nutzen, liegt daher allein bei Ihnen. Mit Ausnahme der gesetzlichen Haftung für Vorsatz ist jede Haftung von Microsoft im Zusammenhang mit Ihrer Nutzung dieser Artikel oder Informationen ausgeschlossen.

Ihr Feedback an uns

 

Contact us for more help

Contact us for more help
Connect with Answer Desk for expert help.
Get more support from smallbusiness.support.microsoft.com