如何提高DataSet转换为List<T>的性能?

3

我正在使用企业库从Oracle11g获取记录,如下所示。

OracleDataProviderCommand dbcommand=new OracleDataProviderCommand(); 
//OracleDataProviderCommand has been derived from System.Data.Common.DbCommand.

 ...Adding Parameters...

//Executing the dbCommand using Enterprise Libary's ExecuteDataSet(DbCommand command) method as below,
DataSet Results = database.ExecuteDataSet(dbCommand);

最后,我正在遍历数据表并创建从服务返回的列表。但是,我遇到了一个巨大的性能问题,因为每个周期从数据库中仅返回64KB(默认获取大小)的数据集。

我的问题是如何改善DataSet到List的转换性能。如果这是由于FetchSize引起的,那么如何设置FetchSize?

提前感谢您的帮助!

1个回答

1
我不建议使用那种方法。相反,您可以拥有自己的DataSet版本(或者您可以使用框架中现有的版本),并使用DataReader的实现自己填充结果。在您的情况下,更好的方式是,由于您持续从DataReader接收数据,因此您可以将其添加到列表中;而不必等待获取整个DataSet,然后再通过迭代来填充列表。 当填充datatable时,数据阅读器比数据集更快吗? 什么更好:DataSet还是DataReader?

http://www.techrepublic.com/article/which-is-best-for-you-datareader-or-dataset


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