Sqlserver
 sql >> Base de données >  >> RDS >> Sqlserver

SQLServer vs StateServer pour les performances de l'état de session ASP.NET

Une petite remarque, mais importante :InProc n'est pas utilisable dans une batterie de serveurs, comme son nom l'indique, il s'exécute dans le processus w3wp actuel et ne peut pas être partagé dans une batterie de serveurs. StateServer est un service Windows, donc la vitesse d'utilisation de StateServer dépend de la vitesse de la machine sur laquelle le service stateserver s'exécute, il s'agit uniquement de mémoire. SQL doit bien sûr écrire les données et les récupérer, ce qui est probablement plus lent que la mémoire uniquement.

À partir d'ici :

  • En cours. En cours de traitement fonctionnera mieux car la mémoire d'état de session est conservée dans le processus ASP.NET. Pour les applications Web hébergées sur un seul serveur, les applications dans lesquelles l'utilisateur est assuré d'être redirigé vers le bon serveur, ou lorsque les données d'état de la session ne sont pas critiques (au sens où elles peuvent être reconstruites ou repeuplées) , c'est le mode à choisir.
  • Hors processus. Ce mode est mieux utilisé lorsque les performances sont importantes, mais vous ne pouvez pas garantir à partir de quel serveur un utilisateur demandera une application. Avec le mode hors processus, vous bénéficiez des performances de lecture depuis la mémoire et de la fiabilité d'un processus distinct qui gère l'état de tous les serveurs.
  • SQL Server. Ce mode est mieux utilisé lorsque la fiabilité des données est fondamentale pour la stabilité de l'application, car la base de données peut être mise en cluster pour les scénarios de panne. Les performances ne sont pas aussi rapides que hors processus, mais le compromis est le niveau de fiabilité supérieur.