我有一个巨大的dataset
(大约150万条记录)会导致内存异常&#34; DataSet dsTemp = setupBpc.GetAllData(); << THIS WORKS
if (dsTemp != null)
{
dsSetupData.Merge(dsTemp); << OOM Exception
}
似乎很快从数据库加载(2- 3秒)但是当调用Merge()方法时,应用程序崩溃并抛出一个&#34; Out Of Memory&#34;异常。
winforms
应用程序已经过时了,我对ADO有些困惑,因为重构将是一项艰巨的任务。它是Janus GridEX
使用GridEX
的{{1}}应用程序,但我无法找到任何方式对dataset
组件进行分页。
但是让我感到困惑的是,这似乎不是{{1}}本身的问题,而是从数据库中检索并加载而没有问题。 Merge()方法似乎存在导致此失败的原因。
答案 0 :(得分:1)
由于您正在合并数据,因此可能会耗尽内存,因此需要更多内存。想一想:首先你拿着原始的数据集,然后合并,这基本上是将原始数据集复制到新的数据集中。因此占用了两倍的内存。
我确信Janus GridEX支持用于数据检索的分页参数,您应该通过整个数据层实现这一点。我认为这个代码更改是不可避免的,因为这不会扩展,你很幸运没有提前解决这个问题!