-3

重複の可能性:
データテーブルにデータを入力するとき、datareader はデータセットよりも高速ですか?

 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;
 }

上記のコードでは、データを取得する 2 つの方法 (それぞれコメント部分内) を記述しました。1 つはデータ アダプターを使用し、もう 1 つはデータリーダーを使用します。2 つのうちのどちらがより速く実行されますか?

4

2 に答える 2

3

DataReaderが最速の方法です。いずれにせよ、DataAdapterは内部でDataReaderを使用し、追加の操作を実行するため、DataAdapterよりも高速です(データセットの複数のテーブルで機能します.....)

DbDataAdapter-FillInternalMethod

于 2012-10-10T13:06:16.000 に答える
1

あなたが実行する場合、select operations私はあなたが使用することを提案しますSqlDataReader

結果セット全体ではなく、一度に1つのレコードのみがメモリにあります

その1回の反復で取得できる速度とほぼ同じです

結果の処理をより早く開始できます

注意:

SqlDataAdapterを使用すると、メモリ使用量がはるかに多くなり、すべてのデータが読み込まれるまで待ってから、データを使用します。

于 2012-10-10T13:06:28.403 に答える