0

我正在将大约 300 万行(ADODB 记录集)的大型结果集加载到数据表中。甚至将结果集加载到数据表中都需要很长时间。我想找到一种仅提取部分结果集然后将其加载到 DataTable 中的方法。或者,有没有办法直接读取记录集而不是将其加载到数据表中然后读取它?

这是我用来填充我的数据表的代码 -

OleDbDataAdapter oleDA = new OleDbDataAdapter();
DataTable dt = new DataTable();
oleDA.Fill(dt, myADODBRecordset);
4

2 回答 2

0

以下是一些需要考虑的选项:

  1. 仅获取您真正需要使用的行和列。

  2. 获取一些数据并让用户在需要时询问下一组行。

  3. 编写优化的 SQL 查询

  4. 除非必须,否则不要使用 DataTable,因为它包含比其他列表类型对象更多的元数据信息。

  5. 考虑使用托管 .NET 提供程序。

于 2013-11-12T01:08:56.950 回答
-1

为什么要将这么大的数据加载到内存中?大型数据事务必须消耗大量资源,因此请优化您的代码,或使用 EF。

于 2013-11-12T00:46:47.800 回答