如何将DataSet改进列表<t>性能?</t>

时间:2013-11-30 06:35:30

标签: c# asp.net-mvc oracle dataset

我正在使用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。?

先谢谢,

1 个答案:

答案 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