Sqlserver
 sql >> Database >  >> RDS >> Sqlserver

SQLServer vs StateServer per le prestazioni dello stato della sessione ASP.NET

Una piccola ma importante nota a margine:InProc non è utilizzabile in una farm, come suggerisce il nome, viene eseguito nell'attuale processo w3wp e non può essere condiviso in una farm. StateServer è un servizio Windows, quindi la velocità di utilizzo di StateServer dipende dalla velocità della macchina su cui è in esecuzione il servizio stateserver, è solo memoria. SQL ovviamente ha bisogno di scrivere i dati e recuperare, che è probabilmente più lento della sola memoria.

Da qui:

  • In corso. In process funzionerà al meglio perché la memoria dello stato della sessione viene conservata all'interno del processo ASP.NET. Per applicazioni Web ospitate su un unico server, applicazioni in cui è garantito il reindirizzamento dell'utente al server corretto o quando i dati sullo stato della sessione non sono critici (nel senso che possono essere ricostruiti o ripopolati) , questa è la modalità da scegliere.
  • Fuori processo. Questa modalità viene utilizzata al meglio quando le prestazioni sono importanti ma non puoi garantire da quale server un utente richiederà un'applicazione. Con la modalità out-of-process, ottieni le prestazioni di lettura dalla memoria e l'affidabilità di un processo separato che gestisce lo stato per tutti i server.
  • SQL Server. Questa modalità viene utilizzata al meglio quando l'affidabilità dei dati è fondamentale per la stabilità dell'applicazione, poiché il database può essere raggruppato per scenari di errore. Le prestazioni non sono veloci come fuori processo, ma il compromesso è il livello di affidabilità più elevato.