Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/asp.net/36.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
会话中的数据表还是ASP.NET中的存储过程分页?_Asp.net_Session_Stored Procedures_Datatable - Fatal编程技术网

会话中的数据表还是ASP.NET中的存储过程分页?

会话中的数据表还是ASP.NET中的存储过程分页?,asp.net,session,stored-procedures,datatable,Asp.net,Session,Stored Procedures,Datatable,首选哪一种: 在会话中在数据表中保留1000条记录,并使用它进行分页? 或 在存储过程级别进行分页,每次请求35条记录? 更多信息: 数据表共40列 用户数为200 7个应用程序正在IIS上运行 Oracle DB server与IIS的服务器不同 欢迎任何其他解决方案/建议/建议 编辑:用户可以更新一行,并将其提交到数据库。它将通过从数据库请求整个数据来刷新网格 Edit2:每个用户都在加载不同的datatable,这些datatable来自数据库中的同一个表我倾向于使用存储的过程路由,但要注

首选哪一种:

在会话中在数据表中保留1000条记录,并使用它进行分页? 或

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

数据表共40列

用户数为200

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

Oracle DB server与IIS的服务器不同

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

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


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

我倾向于使用存储的过程路由,但要注意的是,用户可以根据他们要查找的内容过滤结果。然后,可能会缓存结果及其查询参数,并在执行存储过程之前查看缓存,以确保您没有特定搜索条件的结果

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

只是我的2c

希望这有帮助


编辑:如果我没记错的话,数据表是不可序列化的,所以你无论如何都不能在会话中存储它们,你必须使用数据视图或数据集。

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

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


如果数据表在用户之间共享,则可以将其放入应用程序对象中。

数据表可序列化:数据表:MarshallByValueComponent、IListSource、ISupportInitializeNotification、ISupportInitialize、ISerializable、IXmlSerializable