C# DataSet性能最佳实践
C# 性能优化细节
1、使用ItemArray实现对DataRow的批量赋值
- 在对DataRow的所有字段赋值时,使用字段名进行逐列赋值效率较低。这时应尽量使用批量字段赋值。可以使用ItemArray或rows.Add方法:
/ ds是数据集(DataSet)对象 DataTable dt = ds.Tables[0]; DataRow row = dt.NewRow(); row.ItemArray = new object[] { value1, value2, …, valuen }; // ds是数据集(DataSet)对象 DataTable dt = ds.Tables[0]; dt.Rows.Add(value1, value2, …, valuen); //应避免做大量连续的单列赋值,如下: DataTable dt = ds.Tables[0]; DataRow row = dt.NewRow(); row["col1"] = value1; row["col2"] = value2; … row["coln"] = valuen;
2、合理使用DataTable的并行计算
- DataTable 内置的并行计算可以充分利用电脑的每个CPU,起到优化效率的作用。
IEnumerable<DataRow> FindRows() //查找所有数量小于0的分录 {DataTable dt = ItemDataTable;……return dt.Select(“Quantity<0”); //未使用并行计算 } IEnumerable<DataRow> FindRows() //查找所有数量小于0的分录 {DataTable dt = ItemDataTable;……int index = dt.Columns.IndexOf("Quantity");return dt.AsEnumerable().AsParallel().Where(dr => (decimal)dr[index] < 0); //使用并行计算: }
- 根据实验,当对DataTable的行选择时并行计算优于Select和循环过滤等方式;当进行行遍历时性能类似。
3、使用ImportRow实现向同结构DataTable合并
- 使用Merge方法可以很方便的实现DataTable的合并,但Merge的效率却非常差代码;示例如下:
DataTable[] srcTables = ... ; foreach(DataTable src in srcTables ) { dest.Merge( src ) ; }
- ImportRow也可以实现DataTable的合并操作,性能相比Merge要高很多。代码示例如下:
DataTable[] srcTables = ... ; foreach(DataTable src in srcTables ) {foreach(DataRow row in src.Rows){dest.ImportRow( row ) ; } }
4、待续
C# DataSet性能最佳实践相关推荐
- java jpa性能_[Java Performance] 数据库性能最佳实践 - JPA和读写优化
数据库性能最佳实践 当应用须要连接数据库时.那么应用的性能就可能收到数据库性能的影响. 比方当数据库的I/O能力存在限制,或者因缺失了索引而导致运行的SQL语句须要对整张表进行遍历.对于这些问题.只相 ...
- 持续集成最佳实践_集成服务性能最佳实践–数据流优化
持续集成最佳实践 In this article, we'll present a couple of common best practices regarding the performance ...
- integration_Integration Services性能最佳实践–写目标
integration With this article, we continue part 1 of common best practices to optimize the performan ...
- RocketMQ中高性能最佳实践-网易云课笔记
RocketMQ中高性能最佳实践 最佳实践之Producer 降低服务器管理的复杂性和管理成本 最佳实践之Consumer 最佳实践之NameServer JVM与Linux内核配置 JVM配置 Li ...
- Mendix性能最佳实践
目录 1. 简介 2. 计算属性的最佳实践[MXP001][MXP002] 2.1 在页面中避免使用计算属性[MXP001] 2.1.1 修复步骤 2.2 删除未使用的计算属性[MXP002] 2.2 ...
- 15年双11手淘 H5性能最佳实践
2015年是全面『无线化』的一年,在BAT(财报)几家公司都已经超过50%的流量来自移动端,这次 双11 更是占到了68.67%无线交易 (天猫微博). 手淘中大量的业务采用H5的方式开发,H5体验好 ...
- 15年双11手淘前端技术巡演 - H5性能最佳实践(转载,好文)
转载:原文链接 前言 2015年是全面『无线化』的一年,在BAT(财报)几家公司都已经超过50%的流量来自移动端,这次 双11 更是占到了68.67%无线交易 (天猫微博). 手淘中大量的业务采用H5 ...
- ASP.NET Core 性能优化最佳实践
本文提供了 ASP.NET Core 的性能最佳实践指南. 译文原文地址:https://docs.microsoft.com/en-us/aspnet/core/performance/perfor ...
- DB2 Workload Management 工作负载管理最佳实践
转自:http://www.ibm.com/developerworks/cn/data/library/techarticles/dm-0912db2workloadm/index.html 概要介 ...
最新文章
- 图像文字识别(二):java调用tesseract 识别图片文字
- kong 使用jwt RSA256证书
- android 软件盘弹回去的最好体验,Android 软键盘弹出 日常填坑
- 哈佛开源 | 从零开始教你计算机图形学
- 阿里巴巴牵手上汽集团:成立汽车科技公司
- 题库:queryset数据类型的特性
- python培训价目表-Python培训一般要多少钱?
- python seaborn_Python数据分析之Seaborn(回归分析绘图)
- j2me模拟器linux,J2ME HELLOWORLD 小试牛刀(转)
- 程序员高效率办公软件(推荐)。
- ubuntu14.04拒绝winscp的连接请求问题的解决笔记
- 汽车使用总结(七)--侧方停车
- 天梯L2-029 特立独行的幸福
- python 使用图形化界面tkinter显示图片 规定大小!
- Xcode调试中如何将指定地址转换为其指向的对象
- dnf剑魂buff等级上限_DNF95全新版本,剑魂之玩法攻略
- Mob研究院 |2019互联网医疗行业洞察
- 论文笔记 Semantics-Guided Neural Networks for Efficient Skeleton-Based Human Action Recognition - CVPR
- 什么是Spring的依赖注入?
- PS新建文档Ctrl+N
热门文章
- python如何选择命令_python 解析命令行选项
- 仓库中应用的计算机设备有哪些,智能仓储设备系统中有哪些常见的应用工具
- php 工厂模式 使用场景,PHP设计模式之工厂模式
- python telnet 交互_Python判断telnet通不通的实例
- python数字类型及运算_Python类型和运算--数字
- mysql fetch rows,php中mysql_fetch_array()和mysql_fetch_rows()函数区别
- java 日期函数转换_java 日期函数转换
- java项目逻辑重要吗_JAVA小项目,逻辑+感觉+总结?java小白你做到了吗(源码+教程)...
- django的ajax_cookie和session
- Docker默认网络管理