网络编程 | 站长之家 | 网页制作 | 图形图象 | 操作系统 | 冲浪宝典 | 软件教学 | 网络办公 | 邮件系统 | 网络安全 | 认证考试 | 系统进程
Firefox | IE | Maxthon | 迅雷 | 电驴 | BitComet | FlashGet | QQ | QQ空间 | Vista | 输入法 | Ghost | Word | Excel | wps | Powerpoint
asp | .net | php | jsp | Sql | c# | Ajax | xml | Dreamweaver | FrontPages | Javascript | css | photoshop | fireworks | Flash | Cad | Discuz!
当前位置 > 网站建设学院 > 网络编程 > ASP.NET技巧
Tag:注入,存储过程,分页,安全,优化,xmlhttp,fso,jmail,application,session,防盗链,stream,无组件,组件,md5,乱码,缓存,加密,验证码,算法,cookies,ubb,正则表达式,水印,索引,日志,压缩,base64,url重写,上传,控件,Web.config,JDBC,函数,内存,PDF,迁移,结构,破解,编译,配置,进程,分词,IIS,Apache,Tomcat,phpmyadmin,Gzip,触发器,socket
网络编程:ASP教程,ASP.NET教程,PHP教程,JSP教程,C#教程,数据库,XML教程,Ajax,Java,Perl,Shell,VB教程,Delphi,C/C++教程,软件工程,J2EE/J2ME,移动开发
本月文章推荐
.ASP.NET2.0中用ICallbackEventHa.
.值类型和引用类型在hashtable里面.
.彻底放弃IIS让Apache也支持ASP.N.
.此方法用于确认用户输入的不是恶.
.ASP.NET2.0下利用javascript实现.
.URL重写可删节日期模式---正则表.
.跳出封装剖析ASP.NET脚本回调的原.
.小tips:asp.net 2.0中在gridview.
.六步使用ICallbackEventHandler实.
..Net开发漫谈:关于命名空间和目.
.无限级分类的非递归实现(存储过程.
..net的Membership,为什么就这么.
.小议优化ASP.NET应用性能之Cache.
.ASP.net:Literal控件用法 .
.虚拟主机下asp.net 2.0的导航控件.
.ASP.NET中随机数生成及应用.
.ASP.NET Atlas对JavaScript的扩展.
.在ASP.NET中跨页面实现多选.
.设置页面buffer引出来的问题 .
.asp.net身份验证和授权.

DataTable操作中的性能问题

发表日期:2007-4-16


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

      也有数十倍的性能提高。

上一篇:用ObjectDataSource实现自定义分页的心得总结 人气:5210
下一篇:mscorwks.dll在.Net中的地位以及在.Net代码保护方面的应用 人气:3225
浏览全部DataTable的内容 Dreamweaver插件下载 网页广告代码 祝你圣诞节快乐 2009年新年快乐