我的数据库表将来会很大,成千上万条。把查询的数据(也会很多)绑定到DataGrid里。我要做翻页的功能。我想如果每翻一次,都要绑定一次,查询一次数据库,这样会不会很慢。如果把第一次查询等数据保存在一个变量里,绑定时直接用这个变量里的数据。我知道ViewState在客户端保存数据,这样可以减小服务器的压力,但一旦数据多了就占网络带宽。因为我要做的页面要给其他地区网速不等的人访问,如果网络带宽占地比较大的话也不划算。如果用Session,他占用服务器的内存。这三种情况各有利弊,我现在不知道取舍了。请各位给我出个办法,和讨论一下这三种情况的具体利弊,谢谢

解决方案 »

  1.   

    如果查询结果是大家通用的何不用cache,大家共享一个cache,
    我觉得最好的还是用sql语句分页,只查出自己需要显示的那部分数据
      

  2.   

    用Session和绑定到DataGrid里不是一样占用内存???
    ViewState更不行,只建议保存少量的数据。还是用sql语句分页。。
      

  3.   

    要使用Cache需要引用两个命名空间,其他用法一样,
    using System.Web.Caching;
    using System.Web.Security;如果仅仅是个人可以用session,但是这样对服务器的负荷太大拉,建议用Cache或sql语句分页
      

  4.   

    可以考虑使用Cache对象。不过Cache也是服务器端的对象,它是通用的,就像Application。但是Cache比Application要灵活且强大许多。如果要提升速度,肯定是要花销内存空间的。而要节省空间,那么肯定会造成速度的问题...不过在我看来,硬件存储空间已经不是太大问题。要提高速度,最好避免程序对于低速硬件的读写操作...
      

  5.   

    如果你的数据不是经常改变的,就用cache吧,多个用户共同使用一个cache
      

  6.   

    不可以用cache,每个人查询的数据都不一样的。
      

  7.   

    一般来说都是存储过程分页
    不过你的数据量并不是很大(才一万条,很少的了),一次都取出来放到session里也可以
    不过有一点不好的就是翻页的时候数据不能及时更新
    参考http://community.csdn.net/Expert/topic/3292/3292678.xml?temp=.2545435
    或者去sql版,那里面有很多分页的例子
      

  8.   

    如果是因为翻页最好使用存储过程分页!Viewstate最好不要保存数据,它使用来维护客户端的状态的。
    Session最好不要使用(除非必不可少的情况下)
      

  9.   

    同意cuike519的说法
    如果是因为翻页最好使用存储过程分页!Viewstate最好不要保存数据,它使用来维护客户端的状态的。
    Session最好不要使用(除非必不可少的情况下)