2012-02-28 81 views
0

从我读到的情况来看,当会话状态处于SQLServer模式时,它总是必须访问数据库才能获取和设置会话变量。这是真的,还是可以在某些情况下使用缓存?如果您有任何关于这种模式如何工作的好文章,请随时在这里分享。我似乎无法在Google上找到任何相关内容。会话状态SQLServer模式

我试图评估使用这个(性能,可靠性等)

感谢的风险!

回答

2

可靠性:您的SQL Server实例的可靠性如何?它是否聚集?它在远程服务器上吗?

性能:SQL Server会话状态是性能最低的会话状态选项之一。我假设你正在ASP.NET应用程序中使用它,并且有多个Web服务器。对于每个需要会话状态的请求,它至少会执行一次数据库查询。如果在请求期间更新会话状态,则会执行一个额外的更新查询。另外,会话状态中存储的所有内容都将被读取/更新。如果您可以小心限制哪些页面/资源需要会话状态,则它可以正常工作。

替代品:如果您只在一台Web服务器上运行,则可以使用状态服务器。如果您需要支持多个Web服务器,则可以考虑使用App Fabric Caching Session State提供程序或NCache。这两种方式都比SQL Server执行得更好,并且可能比SQL Server更具容错性。

+0

非常感谢您的回答菲尔!非常有趣的这个App Fabric的东西。不知道。 – 2012-02-29 16:28:10