我正在使用Entrprise Library从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);
最后,我正在迭代数据表和创建从服务返回的列表。 由于DataSet每周期从DB返回64KB(默认获取大小)数据,因此我遇到了一个巨大的性能问题。
我的问题是如何改进DataSet到列表转换的性能。如果这是因为FetchSize那么如何设置FetchSize。?
先谢谢,
答案 0 :(得分:0)
我不建议使用该方法。而是拥有自己的DataSet版本(或者您可以使用框架中的现有版本)来获得结果,并使用DataReader的实现(无论是Oracle的还是Microsoft的#39)自行填充它们。 ; S)
在您的情况下,它甚至更好,因为当您不断从DataReader接收数据时,您只需将其添加到List;而不是必须等待获取整个DataSet,然后再次遍历它以填充您的列表。
Is datareader quicker than dataset when populating a datatable?
What's better: DataSet or DataReader?
http://www.techrepublic.com/article/which-is-best-for-you-datareader-or-dataset