熱點推薦:
您现在的位置: 電腦知識網 >> 編程 >> .NET編程 >> 正文

DataTable操作中的性能問題

2013-11-13 10:16:08  來源: .NET編程 

  最近的一項工作是關於性能提升方面的要做的第一個事情是要把很多同類型的DataTable合並到一起查了很多關於DataTable的相關函數以後我決定用Merge函數來合並這些DataTable


      DataTable[] srcTables = ;
   foreach( DataTable src in srcTables )
   {
   destMerge( src ) ;
   }

  但是測試的結果讓我很是失望性能不是一般的不好經過調查發現性能的瓶頸在Merge函數這裡後來經過測試發現如果用下面的代碼

      DataTable[] srcTables = ;
   foreach( DataTable src in srcTables )
   {
   foreach( DataRow row in srcRows)
   {
   destImportRow( row ) ;
   }
   }

  結果讓人驚奇的是下面的代面的速度是上面的代碼速度的倍!
  
   還做了一個事情就是對DataTable進行filter的時候 我的一個同事和我說了以下的代碼

      DataView dv = dtDefaultView ;
   dvRowFilter = filter ;
   DataTable result = dvToTable() ;

  上面的代碼是能工作的但是它的性能一點都不好後來我把上面的代碼改成了

      DataRow[] rows = dvSelect( filter ) ;
   foreach( DataRow row in rows )
   {
   resultImportRow(row) ;
   }
   也有數十倍的性能提高


From:http://tw.wingwit.com/Article/program/net/201311/13115.html
    推薦文章
    Copyright © 2005-2013 電腦知識網 Computer Knowledge   All rights reserved.