惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

博客园 - 三生石上(FineUI控件)
WordPress大学
WordPress大学
S
SegmentFault 最新的问题
小众软件
小众软件
T
Tailwind CSS Blog
博客园 - 聂微东
OSCHINA 社区最新新闻
OSCHINA 社区最新新闻
人人都是产品经理
人人都是产品经理
V
Visual Studio Blog
罗磊的独立博客
有赞技术团队
有赞技术团队
奇客Solidot–传递最新科技情报
奇客Solidot–传递最新科技情报
让小产品的独立变现更简单 - ezindie.com
让小产品的独立变现更简单 - ezindie.com
Jina AI
Jina AI
量子位
云风的 BLOG
云风的 BLOG
Recent Announcements
Recent Announcements
Hugging Face - Blog
Hugging Face - Blog
P
Proofpoint News Feed
N
Netflix TechBlog - Medium
GbyAI
GbyAI
钛媒体:引领未来商业与生活新知
钛媒体:引领未来商业与生活新知
腾讯CDC
美团技术团队

博客园 - Jerry.liu

AspNetPager分页控件--使用方法 2 AspNetPager分页控件--使用方法 1 分析ASP.NET服务器控件开发-控件生命周期 用ObjectDataSource实现自定义分页的心得总结 ASP.NET的 Session 详解4 ASP.NET的 Session 详解3 ASP.NET的 Session 详解2 ASP.NET的 Session 详解1 ASP.NET的 MVC框架 全面优化ADO ADO.net学习纪录 (二) ADO.net学习记录 (一) 彻底放弃IIS让Apache也支持ASP.NET 如何实现Asp与Asp.Net共享Session Asp.net生成htm静态文件的两种途径 ASP.NET2.0的控件状态和视图状态探讨 2 ASP.NET2.0的控件状态和视图状态探讨 1 压力监测程序sqlserver和MYSQL版 PetShop数据访问层之数据库访问设计
DataTable操作中的性能问题
Jerry.liu · 2007-05-28 · via 博客园 - Jerry.liu

最近的一项工作是关于性能提升方面的。要做的第一个事情是要把很多同类型的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) ;
   }
  
   也有数十倍的性能提高。