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

3
我想展示一个数据集中的大量数据,约10列,100,000条记录,这将消耗大量的内存,约为700MB。我也尝试了使用分页来减少内存占用,但是我不喜欢使用分页时涉及到的上一页/下一页按钮。目前我没有将数据写入磁盘,我应该这样做吗?如果是,最常见的方法是什么?这些数据不会永久存储,只有在查看时才会存储,然后可能会运行新查询并查看另外70,000条记录。请问如何最好地进行处理?
感谢您的建议。

你是如何填充DataSet的?即其中的数据来源是什么? - wprl
5个回答

2
现实是,终端用户很少需要看到他们的数据集的全部内容,所以您可以使用任何您喜欢的方法来呈现数据(例如listview),并构建自定义分页器,以便数据集仅提供所需记录数量的结果。否则,每次页面加载都会导致重新调用数据集。
将XML方法保存到临时文件或利用通过存储过程创建的临时表是替代方法,但您仍然必须筛选和呈现数据。

1

一个重要的问题是这些数据来自哪里。这将有助于确定可用的选项。将数据写入磁盘可能会起作用,但出于以下三个原因,这可能不是最佳选择:

  1. 作为用户,如果您的应用程序突然消耗了700Mb的磁盘空间而没有任何警告,我会感到非常恼火。但是,我会注意到这些事情。我想很多用户不会。尽管如此:这是很大的空间。
  2. 根据数据来源,即使是初始传输也可能比您真正想要允许的时间更长。
  3. 同样,作为用户,我绝对不会手动查看700Mb的数据。这意味着您几乎肯定永远不需要显示它。您只想一次加载请求的页面,一页(或几页)。

0
我建议使用内存映射文件...不确定 .NET 是否已经支持它。

0

这是很多数据需要在内存中处理和保留。

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

我个人发现,采用自定义分页设置(控制下一页、上一页链接)并在数据库级别进行分页是获得最佳性能、仅获取所需数据的唯一可能方式...


0

如果你想减少内存占用,可以实现SQL分页


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接