如果我有SQL Server支持的会话并运行像
这样的命令序列HttpContext.Current.Session['user']
HttpContext.Current.Session['user']
这会向会话数据库表发出2个请求来获取值,还是asp.net会对Session对象做什么特别的事情以防止多个数据库命中?
答案 0 :(得分:1)
肯定是的。
我有SQL服务器会话状态设置,我在上面运行了Profiler。并且可以清楚地看到优化的DB调用。 如果事实上有一次优化获得多个会话项目。
如下面的代码也会导致SINGLE优化的一组调用(注意:它不是一个普通的单个DB调用来获取会话项)
HttpContext.Current.Session['user']
HttpContext.Current.Session['userTwo']
注意:在.NET 4中测试
如果需要,您可以实施自己的会话状态提供程序。 http://msdn.microsoft.com/en-us/library/ms178587.aspx