我编写了自己的PageStatePersister
类,基于该类SessionPageStatePersister
将会话的最近 10Viewstate
秒写入共享磁盘。我认为这将比保持Viewstate
会话更好地扩展,因为所有 Web 服务器都可以访问它,它们不必处理过期问题,并且使用更少的内存。
当用户关闭浏览器时,它会通知服务器,服务器会删除两个小时未访问的文件。到目前为止一切都很好,但我想知道将其存储Viewstate
在 SQL 服务器数据库中是否会更快、更有效。
- 每个
ViewState
文件平均为 30k。 - 目前它只是读取一个隐藏字段来获取 Viewstate 键并直接访问文件并反序列化。无需排序或搜索。
- 每小时将有大约 2000 个并发用户,保存最近的 20 个 Viewstate 会话将是每小时大约 20k 个临时视图文件。
- 它必须定期遍历文件并删除最旧的文件。
那么在这种情况下哪个更好:平面文件系统还是数据库?