Dar*_*o Z 35 sql-server asp.net performance session stateserver
我正在学习MS认证,我正在做的一个练习测试有一个问题,争论点是在SQL Server中存储会话而不是StateServer之间的性能.
鉴于应用程序在Web场中运行,会话状态的哪个解决方案可以提供最佳性能(SQL Server或StateServer),最重要的是,为什么?
Col*_*lin 14
一个小但重要的旁注:InProc在一个服务器场中不可用,顾名思义,它在当前的w3wp进程中运行,不能在一个服务器场中共享.StateServer是一个Windows服务,因此使用StateServer的速度取决于运行状态服务器服务的机器的速度,它只是内存.SQL当然需要写入数据并检索,这可能比只有内存慢.
从这里:
Col*_*kay 11
从这个链接:http://www.eggheadcafe.com/articles/20021016.asp
性能
InProc - 速度最快,但会话数据越多,Web服务器上消耗的内存就越多,这可能会影响性能.
StateServer - 当存储基本类型的数据(例如字符串,整数等)时,在一个测试环境中,它比InProc慢15%.但是,如果要存储大量对象,则序列化/反序列化的成本会影响性能.您必须为自己的方案执行性能测试.
SQLServer - 当存储基本类型的数据(例如字符串,整数等)时,在一个测试环境中,它比InProc慢25%.与StateServer中的序列化相同的警告.
所以看起来StateServer比SQL Server存储会话状态要快一点.
就原因而言,我建议SQL Server更具多功能性,并且可能也会用于其他事情.不仅如此,而且存储机制是磁盘,其中StateServer在一个单独的进程中运行,但它只是将数据存储在另一个进程的内存空间中,而不是必须将其写入磁盘(虚拟内存允许)