C# DataSet效能最佳實務

來源:互聯網
上載者:User
C# 效能最佳化細節

1、使用ItemArray實現對DataRow的批量賦值


  • 在對DataRow的所有欄位賦值時,使用欄位名進行逐列賦值效率較低。這時應盡量使用批量欄位賦值。可以使用ItemArray或rows.Add方法:

    / ds是資料集(DataSet)對象DataTable dt = ds.Tables[0];DataRow row = dt.NewRow();row.ItemArray = new object[] { value1, value2, …, valuen };// ds是資料集(DataSet)對象DataTable dt = ds.Tables[0];dt.Rows.Add(value1, value2, …, valuen);//應避免做大量連續的單列賦值,如下:DataTable dt = ds.Tables[0];DataRow row = dt.NewRow();row["col1"] = value1;row["col2"] = value2;…row["coln"] = valuen;

2、合理使用DataTable的並行計算


  • DataTable 內建的並行計算可以充分利用電腦的每個CPU,起到最佳化效率的作用。

    IEnumerable<DataRow> FindRows() //尋找所有數量小於0的分錄{    DataTable dt = ItemDataTable;    ……    return dt.Select(“Quantity<0”); //未使用並行計算}IEnumerable<DataRow> FindRows() //尋找所有數量小於0的分錄{    DataTable dt = ItemDataTable;    ……    int index = dt.Columns.IndexOf("Quantity");    return dt.AsEnumerable().AsParallel().Where(dr => (decimal)dr[index] < 0); //使用並行計算:}



  • 根據實驗,當對DataTable的行選擇時並行計算優於Select和迴圈過濾等方式;當進行行遍曆時效能類似。


3、使用ImportRow實現向同結構DataTable合并


  • 使用Merge方法可以很方便的實現DataTable的合并,但Merge的效率卻非常差代碼;樣本如下:

    DataTable[] srcTables = ... ;foreach(DataTable src in srcTables ){dest.Merge( src ) ;}
  • ImportRow也可以實現DataTable的合併作業,效能相比Merge要高很多。程式碼範例如下:

    DataTable[] srcTables = ... ;foreach(DataTable src in srcTables ){  foreach(DataRow row in src.Rows)  {     dest.ImportRow( row ) ;        }}


4、待續


以上就是C# DataSet效能最佳實務的內容,更多相關內容請關注topic.alibabacloud.com(www.php.cn)!

  • 相關文章

    聯繫我們

    該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

    如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

    A Free Trial That Lets You Build Big!

    Start building with 50+ products and up to 12 months usage for Elastic Compute Service

    • Sales Support

      1 on 1 presale consultation

    • After-Sales Support

      24/7 Technical Support 6 Free Tickets per Quarter Faster Response

    • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.