ASP.Net SQLServer会话状态与直接数据库访问

时间:2011-06-06 20:56:28

标签: asp.net sql-server-2008 session-state

在我正在开发的网站上,我有一些“用户首选项”,我会为我的返回注册用户保存(例如,每页要显示的产品摘要数)。我很好奇,如果在ASP.Net SQLServer会话状态中存储/检索此数据有任何性能优势,而不是直接从我的数据库中检索它。非常感谢提前!

2 个答案:

答案 0 :(得分:0)

总是更好地将数据存储在会话状态(性能观点),只要数据不是太大。这样,您可以使用生产数据数据库(您保存UserData的位置)点击次数会减少。只需确保User Woul不会改变他在会话中缓存的偏好。

只有会话的潜在问题是每个用户都维护会话。因此,如果您的网站上有太多用户,会话状态会增长,但由于您使用的是SQL Server作为Session Store,因此您很擅长。如果您一直在使用InProc SessionMode,您的Session将在内存中(生产服务器上的关键资源!)

答案 1 :(得分:0)

无论如何,你正在将命中率转移到sql server。所以你不应该有明显的性能影响,如果使用sql server进行会话状态 - 你不必担心实现细节 - 因此可能更容易使用。但不 - 没有主要的好处。有人可能会说这取决于你如何存储/查找你的信息,但对于大多数应用程序而言,这里的差异绝对可以忽略不计 - 这取决于你想要实现的方式。现在,如果您离开sql server会话状态,那么您还有另外一组需要关注的问题(应用程序重置等),但这不在您所要求的范围内:)