Viewstate in file flat vs viewstate in SQLserver
-
20-09-2019 - |
Domanda
ho scritto la mia classe PageStatePersister
sulla base di SessionPageStatePersister
che scrive i più recenti 10 Viewstate
s per una sessione di un disco condiviso. Immagino che questo scalerà meglio che tenere Viewstate
in sessione dal momento che tutti i server web hanno accesso ad esso, non avranno a che fare con la scadenza, e utilizzare meno memoria.
Quando un utente chiude il browser lo comunica il server e il server elimina i file che non sono stati aperti per due ore. Fin qui tutto bene, ma mi chiedo se sarà più veloce ed efficiente per memorizzare Viewstate
in un database SQL Server, invece.
- Ogni file
ViewState
è 30k in media. - Attualmente legge solo un campo nascosto per ottenere una chiave Viewstate e accedere direttamente al file e deserializzare. Non c'è alcun bisogno di ordinare o di ricerca.
- Non ci saranno circa 2000 utenti simultanei ogni ora e di risparmio ultimi 20 sessioni ultimi ViewState sarà di circa 20k vista Temp file all'ora.
- Deve periodicamente scorrere i file e cancellare il file più vecchio.
Così che è meglio in questo caso: un flatfile di sistema o un database
Soluzione
Sarebbe vanno molto meglio per memorizzare il ViewState in SQL Server. Se alla fine si vuole aumentare da 10 a 50 più recente più recente, ad esempio, sarebbe un aumento relativamente banale del carico di DB. Disk I / O deve essere generalmente evitato per quanto possibile, moreso che DB di I / O. operazioni di pulitura sarebbe anche funzionano molto meglio, come diretto attraverso un deserto di file abbandonati sul disco è probabilmente molto più pesante di WHERE DateInserted > 20 minutes ago
.