Sqlserver
 sql >> Datenbank >  >> RDS >> Sqlserver

SQLServer vs. StateServer für ASP.NET-Sitzungsstatusleistung

Eine kleine, aber wichtige Randnotiz:InProc ist nicht in einer Farm verwendbar, wie der Name schon sagt, es läuft in den aktuellen w3wp-Prozessen und kann nicht über eine Farm geteilt werden. StateServer ist ein Windows-Dienst, daher hängt die Geschwindigkeit der Verwendung von StateServer davon ab, wie schnell der Computer ist, auf dem der Stateserver-Dienst ausgeführt wird, es handelt sich nur um Speicher. SQL muss natürlich die Daten schreiben und abrufen, was wahrscheinlich langsamer ist als nur der Speicher.

Von hier:

  • In Bearbeitung. In Bearbeitung wird die beste Leistung erbringen, da der Sitzungszustandsspeicher innerhalb des ASP.NET-Prozesses gehalten wird. Für Webanwendungen, die auf einem einzelnen Server gehostet werden, Anwendungen, bei denen der Benutzer garantiert zum richtigen Server umgeleitet wird, oder wenn die Sitzungsstatusdaten nicht kritisch sind (in dem Sinne, dass sie neu erstellt oder neu gefüllt werden können). , dies ist der zu wählende Modus.
  • Außer Bearbeitung. Dieser Modus wird am besten verwendet, wenn die Leistung wichtig ist, Sie jedoch nicht garantieren können, von welchem ​​Server ein Benutzer eine Anwendung anfordert. Mit dem prozessexternen Modus erhalten Sie die Leistung des Lesens aus dem Speicher und die Zuverlässigkeit eines separaten Prozesses, der den Status für alle Server verwaltet.
  • SQL-Server. Dieser Modus wird am besten verwendet, wenn die Zuverlässigkeit der Daten für die Stabilität der Anwendung von grundlegender Bedeutung ist, da die Datenbank für Fehlerszenarien geclustert werden kann. Die Leistung ist nicht so schnell wie bei Out-of-Process, aber der Kompromiss ist die höhere Zuverlässigkeit.