Viewstate na televisão arquivos vs viewstate em SQLserver
-
20-09-2019 - |
Pergunta
Eu escrevi a minha própria PageStatePersister
classe, com base no SessionPageStatePersister
que grava os últimos 10 Viewstate
s para uma sessão de um disco compartilhado.Eu acho que isso vai de escala melhor do que manter o Viewstate
na sessão, desde que todos os servidores web têm acesso a ele, eles não têm de lidar com a expiração, e usar menos memória.
Quando um usuário fecha o navegador, ele notifica o servidor e o servidor exclui os arquivos que não foram acessados por duas horas.Até aí tudo bem, mas eu estou querendo saber se ele vai ser mais rápido e mais eficiente para armazenar Viewstate
em um banco de dados SQL server em vez disso.
- Cada
ViewState
o arquivo é 30k, em média. - Atualmente, ele só lê um campo oculto para obter um Viewstate chave de acesso e o arquivo diretamente e anular a serialização.Não há necessidade de classificar ou de pesquisa.
- Serão cerca de 2000 usuários simultâneos a cada hora e verão passado recente, de 20 de Viewstate sessões será de cerca de 20k temp exibir arquivos por hora.
- Ele deve, periodicamente, iterar através de arquivos e excluir o arquivo mais antigo.
Então, o que é melhor neste caso:um flatfile do sistema ou de um banco de dados?
Solução
Seria escala muito melhor para armazenar o estado de visualização no SQL Server.Se pretende, eventualmente, aumento de 10 últimos 50 mais recentes, por exemplo, seria relativamente trivial aumento na base de dados de carga.E/S de disco geralmente deve ser evitado sempre que possível, mais do que DB I/O.Operações de limpeza também funcionaria muito melhor, como a busca em um terreno baldio de abandono arquivos no disco é, provavelmente, muito mais pesado do que WHERE DateInserted > 20 minutes ago
.