我根据PageStatePersister
编写了自己的SessionPageStatePersister
类,它将会话的最新10 Viewstate
写入共享磁盘。我认为这会比在会话中保持Viewstate
更好地扩展,因为所有Web服务器都可以访问它,它们不必处理过期,并且使用更少的内存。
当用户关闭浏览器时,它会通知服务器,服务器会删除那些两小时内未访问过的文件。到目前为止这么好,但我想知道将Viewstate
存储在SQL服务器数据库中是否会更快更高效。
ViewState
文件平均为30k。 在这种情况下哪个更好: flatfile 系统或数据库?
答案 0 :(得分:3)
在SQL Server中存储ViewState会扩展得更好。例如,如果您最终想要从最近的10个增加到最近的50个,那么DB负载的增加将是相对微不足道的。通常应尽可能避免磁盘I / O,而不是DB I / O.清理操作也会更好,因为在磁盘上放弃废弃文件可能比WHERE DateInserted > 20 minutes ago
重得多。