处理数据表中的大型ADODB记录集?

时间:2013-11-12 00:40:19

标签: c# .net-3.5 adodb

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

这是我用来填充DataTable的代码 -

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

2 个答案:

答案 0 :(得分:0)

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

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

  2. 获取一些数据,让用户在需要时请求下一组行。

  3. 编写优化的SQL查询

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

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

答案 1 :(得分:-1)

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