-3

可能重复:
填充数据表时,数据读取器是否比数据集更快?

 public DataTable GetReviewsId(Objects myObjects)
 {
     DataTable tblBindReviews = new DataTable();
     string Query = "";
     try
     {
         Query = "select distinct ProductId from tblReview where ProductId in (select ProductId from tblProduct where R=0 and T=0)";
         /*SqlConnection mySqlConnection = this.SetDatabaseConnection();
         SqlDataAdapter mySqlDataAdapter = new SqlDataAdapter(Query, mySqlConnection);
         mySqlDataAdapter.Fill(tblBindReviews);*/
         /*mySqlConnection.Open();
         SqlCommand cmd = new SqlCommand(Query,mySqlConnection);
         tblBindReviews.Load(cmd.ExecuteReader());*/
     }
     catch (SqlException ex)
     {
         throw new Exception(ex.Message);
     }
     finally
     {
         this.ClosedatabaseConnection();
     }
     return tblBindReviews;
 }

在上面的代码中,我编写了两种检索数据的方法(每种都在注释部分内),一种使用数据适配器,另一种使用数据读取器。两者中哪一个会跑得更快?

4

2 回答 2

3

DataReader 是最快的方法。在任何情况下都比 DataAdapter 更快,因为 DataAdapter 在内部使用 DataReaders 并执行其他操作(适用于数据集多个表,......)

DbDataAdapter - FillInternalMethod

于 2012-10-10T13:06:16.000 回答
1

如果你执行select operations我建议你使用SqlDataReader

一次在内存中只有一条记录,而不是整个结果集

与您在一次迭代中获得的速度一样快

让您更快开始处理结果

注意:

使用 SqlDataAdapter 你有更高的内存使用,你等到所有数据都被加载后再使用它

于 2012-10-10T13:06:28.403 回答