DataTable操作中的性能问题
点击次数:35 次 发布日期:2008-11-26 11:18:35 作者:源代码网
|
源代码网推荐 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) ; 源代码网推荐 } 源代码网推荐 源代码网推荐 也有数十倍的性能提高。 做人要厚道,请注明转自酷网动力(www.ASPCOOL.COM)。 源代码网推荐 源代码网供稿. |
