直接放在SESSION里,当用户太多时,对内存得占有大。
只把用户的ID放在SESSION,对数据库压力大。

解决方案 »

  1.   

    我不是高手
    不过我觉得应该具体情况具体分析
    session是一次性占用系统资源,但是调用方便
    读数据库是把系统资源平均到每次读操作中,这样服务器空闲时效率会高,但是数据库相对会大,但是也大不了多少。不过代码量要大
    你可以权衡后做决定
    如果数据不需要很安全,建议使用临时cookie,公用数据使用cache,这样比较好一点。
      

  2.   

    如果单看一次执行的效率,那当然是前者高,因为不用执行IO操作
    但是如果用户数很多,那么Session里面放太多东西会占用更多的服务器资源所以,这要看你的用户数有多少在线用户多的话,就尽可能的少往Session里面放东西,这需要采取一些测试来达到平衡,你可以使用VS.Net带的Application Center Test来测试服务器的负载另外,ASP.Net提供了Session OutProc的存储方法,可以把Session存放在其他的服务器或者数据库,这样就可以再不用更改原来代码的情况下来把Session的存储负载转移到其他的服务器,具体内容请参考MSDN:  ms-help://MS.VSCC/MS.MSDNVS.2052/cpguide/html/cpconsessionstate.htm
      ms-help://MS.VSCC/MS.MSDNVS.2052/cpgenref/html/gngrfsessionstatesection.htm
      

  3.   

    放在数据库的方案比较好,这样更安全稳定,当然性能稍微差一点,但有得必有失啊!!--------------------------------
    AspNetPager 免费分页控件4.0版发布,欢迎下载使用:http://www.webdiyer.com
      

  4.   

    这两种方案都占用很贵的服务器资源,我看还是放在cookie里比较好,做一个cookie测试,如果不支持,则使用你所说的两种方案之一。
      

  5.   

    2000个,如果保存信息量不大的话,使用session吧
      

  6.   

    差不多2000人的话,你就要考虑你是不是需要那么多及时的数据要获取因为2000人同时在线,不管你用什么样的方式,都需要谨慎测试,而且要服务器够强劲Cookie不是不可以,只是有安全性的隐患,而且有的用户关闭了浏览器的Cookie,如果采用加密的Cookie,那么又增加了服务器解密的负担你可以看看我给你的MSDN的链接,把Session存放到其他的服务器是可以接受的解决方案,这样可以减轻服务器的负担另外,To uno(钢盅郭子)
    不是说放数据库更高效,只是这样会减轻Web Server的负担,一般来说,稍大型的应用Web Server和Database Server不可能用同一台服务器,读数据库的话,Web Server只会消耗网络传输的开销,而基本不用占用太多服务器的资源,读数据库的开销都被数据库Server承担了,而Session则会一直占用Web Server的资源
      

  7.   

    同意 timmy3310(Tim) 得说法。
    谢谢!