Frage

Derzeit speichere ich das DataSet in einem ViewState. Dies kann sich jedoch auf die Leistung der Seite auswirken.

Können Sie mir vorschlagen, ob ich Session oder ViewState oder eine Alternative verwenden kann, die die Leistung nicht beeinträchtigt?

War es hilfreich?

Lösung

Warum müssen Sie den gesamten Datensatz speichern? Wenn Sie müssen, dann tun Sie es in der Sitzung.Wenn Ihre Sitzung "inproc" ist, wird das Dataset-Objekt im Speicher gespeichert (Sie sparen etwas Leistung, da keine Serialisierung erfolgt).

Wenn ich Sie wäre, würde ich den Code analysieren und versuchen, nicht den gesamten Datensatz in keiner Sitzung zu speichern, nicht im Ansichtsstatus - es muss eine Möglichkeit geben, Ihren Code zu optimieren.

Hoffe es hilft.

Andere Tipps

Wenn Sie den gesamten Datensatz speichern möchten, gibt es immer die Caching-Methode, mit der Sie große Variablen mit guter Leistung speichern können.Hier ein Beispiel, wie Sie eine Variable im Cache speichern können.

Cache["CacheItem1"] = "Cached Item 1";

Und so rufen Sie die Variable ab:

string cachedString;
cachedString = (string)Cache["CacheItem"];

Das Speichern eines Datasets im Ansichtsstatus oder in der Sitzung ist nicht ratsam, aber von beiden ist das Speichern in der Sitzung definitiv besser als im Ansichtsstatus.Seitdem erfolgt die Serialisierung / De-Serialisierung auf dem Server.Anstatt die serialisierten Daten auch an den Client zu senden.

Wie ich denke, hilft das Speichern in einer Sitzung vielleicht, aber Sie müssen über folgende Punkte nachdenken

  1. Wie viele Benutzer verwenden Ihre Anwendung?
  2. Wie groß ist der Datensatz?Wenn es mehr ist, speichern Sie es nicht in der Sitzung.

    Ich schlage vor, Sie prüfen Ihre Anforderungen. Wenn möglich, können Sie sie im Cache speichern, sie sind jedoch auf Anwendungsebene.als Sitzung Jeder Benutzer hat seine eigene Sitzung.

    Sie können die folgenden Links überprüfen

    1. Sitzung V / s Viewstate
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top