ASP.NET中的Session或存储过程分页中的DataTable?

时间:2011-04-05 00:36:59

标签: asp.net session stored-procedures datatable

首选:

  1. 在会话中的数据表中保留1000条记录并使用它进行分页?
  2. 或者

    1. 在存储过程级别进行分页并每次请求35条记录?
    2. 更多信息:

      • 40列的数据表

      • 用户数量为200个用户

      • 7个应用程序正在IIS上运行

      • Oracle数据库服务器与IIS的服务器不同

      欢迎任何其他解决方案/建议/建议

      编辑:用户可以更新一行,并将其提交给数据库。这将通过从数据库请求整个数据来刷新网格。

      Edit2:每个用户都在加载来自数据库中同一个表的不同数据表

2 个答案:

答案 0 :(得分:0)

我倾向于使用存储过程路线,但需要注意的是让用户能够将结果过滤到他们想要的内容。然后可能将结果与其查询参数一起缓存,并在执行存储过程之前查看缓存,以确保您没有针对该特定搜索条件的结果。

将这些数据放入会话并不是一个好主意,因为这些信息不会在多个用户之间共享(因为它在会话中),而且从长远来看会损害性能。如果您将范围扩展到应用程序级别,最好使用缓存机制来减轻应用程序中的内存占用。

只是我的2c,

希望这有帮助。

编辑:如果我能够正确记住,DataTables不是可序列化的,那么无论如何你都无法将它们存储在会话中,你必须使用数据视图或数据集。

答案 1 :(得分:0)

如果服务器上有大量内存,将数据保存在内存中将比每次访问数据库快得多。

粗略计算:每列1000 * 40 * 200 *字节+开销

如果DataTable在用户之间共享,则可以将其放在Application对象中。