程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> .NET網頁編程 >> .NET實例教程 >> DataTable操作中的性能問題

DataTable操作中的性能問題

編輯:.NET實例教程

 最近的一項工作是關於性能提升方面的。要做的第一個事情是要把很多同類型的DataTable合並到一起,查了很多關於DataTable的相關函數以後,我決定用Merge函數來合並這些DataTable。
      DataTable[] srcTables = ... ;
      foreach( DataTable src in srcTables )
      {
         dest.Merge( src ) ;
      }
      但是測試的結果讓我很是失望,性能不是一般的不好。經過調查發現性能的瓶頸在Merge函數這裡。後來經過測試,發現如果用下面的代碼:
      DataTable[] srcTables = ... ;
      foreach( DataTable src in srcTables )
      {
         foreach( DataRow row in src.Rows)
         {
            dest.ImportRow( row ) ;      
         }
      }
   
      結果讓人驚奇的是,下面的代面的速度是上面的代碼速度的100倍!

      還做了一個事情,就是對DataTable進行filter的時候 ,我的一個同事和我說了以下的代碼:
      DataView dv = dt.DefaultVIEw ;
      dv.RowFilter = filter ;
      DataTable result = dv.ToTable() ;
      上面的代碼是能工作的,但是它的性能一點都不好,後來我把上面的代碼改成了:
      DataRow[] rows = dv.Select( filter ) ;
      foreach( DataRow row in rows )
      {
         result.ImportRow(row) ;
      }

      也有數十倍的性能提高。

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved