【问题标题】:How to Improve DataSet to List<T> Performance?如何提高 DataSet 到 List<T> 的性能?
【发布时间】:2013-12-16 08:04:52
【问题描述】:

我正在使用 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 每个周期仅从数据库返回 64KB(默认获取大小)的数据,因此我得到了一个存在巨大性能问题的结构。

我的问题是如何提高数据集到列表转换的性能。如果这是因为 FetchSize 那么如何设置 FetchSize?

提前致谢,

【问题讨论】:

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


    【解决方案1】:

    我不建议使用这种方法。而是使用您自己的 DataSet 版本(或者您可以使用框架中现有的版本)来获取结果,并使用 DataReader 的实现(无论是 Oracle 的还是 Microsoft 的)自己填写它们。

    在您的情况下,它会更好,因为当您不断从 DataReader 接收数据时,您可以将其添加到列表中;而不必等待获取整个 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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2010-10-06
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2022-11-14
      • 1970-01-01
      相关资源
      最近更新 更多