C#数据集,分页和大量数据

时间:2008-10-29 20:54:41

标签: c# dataset

我想在数据集中显示大量数据,100,000条记录大约10列,这会消耗700 MB的大量内存。我也试过使用分页,这减少了大约15-20%,但我不喜欢使用分页时涉及的上一个/下一个按钮。我现在不是把数据写到磁盘上,我应该吗?如果是这样,最常见的方法是什么?在查看数据时,数据不会永久存储,然后可以运行新查询,并且可以查看其他70,000条记录。最好的方法是什么?

感谢您的建议。

5 个答案:

答案 0 :(得分:2)

现实情况是,最终用户很少需要查看其数据集的总体情况,因此我会使用您喜欢的方法来呈现数据(listview)并构建自定义寻呼机,以便数据集仅使用所需记录数的结果。否则,每次页面加载都会导致重新调用数据集。

临时文件的XML方法或利用通过存储过程创建的临时表是替代方案,但您仍然必须筛选并显示数据。

答案 1 :(得分:1)

一个重要的问题是这些数据来自何处。这将有助于确定您可以使用哪些选项。写入磁盘可行,但它可能不是最佳选择,原因有三:

  1. 作为一个用户,如果您的应用程序突然咀嚼700Mb的磁盘空间而没有任何警告,我会非常恼火。但是,那时,我会注意到这些事情。我想很多用户都不会。仍然:这是一个很大的空间。
  2. 根据数据来源,即使是初始转移也可能需要比您真正想要的更长的时间。
  3. 同样,作为一个用户,我没有办法手动挖掘700Mb的数据。这意味着你几乎肯定不需要展示它。您希望一次只加载请求的页面,一个(或几个)页面。

答案 2 :(得分:0)

我建议使用内存映射文件......不确定.NET是否包含对它的支持。

答案 3 :(得分:0)

这是很多数据要处理并将aroudn保留在内存中。

这是一个ASP.NET应用程序吗?还是Windows应用程序?

我个人已经发现,使用自定义寻呼机设置(控制,下一个上一个链接)和数据库级别的分页是唯一可能获得最佳性能的方法,只获得所需的数据.... / p>

答案 4 :(得分:0)

如果你想减少内存占用,

实现paging in SQL