none
Session最多能存储多大的数据?将数据存到sessin中供给分页功能使用,可行吗? RRS feed

  • 问题

  • Session最多能存储多大的数据?将数据存到sessin中供给分页功能使用,可行吗?

    如题。

    其实这个可以是两个问题:1、session最大存储量;2、Ado.Net分页技术有哪些?

    2017年5月23日 5:13

答案

  • 你好,

    1.默认情况下,session中的数据存储在web服务器上的内存中,受内存大小限制。如果内存中数据过多会影响服务器性能。

    你也可以修改session状态模式,将数据存储在stateserver 和SQL Server中。

    如果数据量太大的话,我建议你可以使用数据库存储数据。

    2.Ado.Net主要是通过执行相应的SQL语句去实现分页,你可以根据数据库的类型,写相应的分页语句。

    如果你用的是SQL server数据库,你可以参考下面的链接:

    http://www.cnblogs.com/zyw-205520/archive/2012/10/23/2736223.html 

    http://www.cnblogs.com/qqlin/archive/2012/11/01/2745161.html 

    • 已建议为答案 Angie Xu 2017年6月2日 1:57
    • 已标记为答案 陈浩楠 2018年1月9日 4:47
    2017年5月24日 9:51
    版主

全部回复

  • 以前看到的评论,session可以存储的最大数据为2G,一般情况下不必要考虑大小,而是性能。

    分页技术,无非就是根据需要取数,可以先将所有数据取到内存中,在内存中分页,也可以在SQL取数时就分页。


    专注于.NET ERP/CRM开发框架,C/S架构,SQL Server + ORM(LLBL Gen Pro) + Infragistics WinForms

    2017年5月23日 9:40
  • 你好,

    1.默认情况下,session中的数据存储在web服务器上的内存中,受内存大小限制。如果内存中数据过多会影响服务器性能。

    你也可以修改session状态模式,将数据存储在stateserver 和SQL Server中。

    如果数据量太大的话,我建议你可以使用数据库存储数据。

    2.Ado.Net主要是通过执行相应的SQL语句去实现分页,你可以根据数据库的类型,写相应的分页语句。

    如果你用的是SQL server数据库,你可以参考下面的链接:

    http://www.cnblogs.com/zyw-205520/archive/2012/10/23/2736223.html 

    http://www.cnblogs.com/qqlin/archive/2012/11/01/2745161.html 

    • 已建议为答案 Angie Xu 2017年6月2日 1:57
    • 已标记为答案 陈浩楠 2018年1月9日 4:47
    2017年5月24日 9:51
    版主
  • 谢谢您的回复。关于将数据取到内存中,然后分页的时候访问内存获取数据,如果用cache对象实现,分页数据要怎么获取呢?我现在的思路是cache 中存放dataset对象,然后获取数据的时候将dataset中的table转list集合,然后用linq来实现分页。但是这其中多次的装箱和拆箱对性能有影响吗?有多大影响?这种方式是主流的解决方式吗?
    2017年5月25日 2:12
  • 谢谢您的回复!稍后研究下您给的那两个博客园文章!
    2017年5月25日 2:24