DataReader和Dataset的性能比较 以及什么时候用dataset什么时候用DataReader
原文发布时间为:2009-11-13 —— 来源于本人的百度文章 [由搬家工具导入]
DataReader和Dataset的性能比较 以及什么时候用dataset什么时候用DataReader
【技术要点】
1、每次Read()方法从数据库中取出一条数据,然后丢弃;然后取出下一条数据
2、它需要保持当前的活动连接
3、它总是顺序读取
【和Dataset的性能差距】
DataReader是后者速度的近30倍,而且从数据库中取出的数据越多,这方面的速度差距也越大
见 A Speed Freaks Guide to Retrieving Data in ADO.NET
【如何提高性能?】
越早从DataReader读取数据,越早关闭DataReader,越早关闭连接,就越能提高性能
【Sql和OleDB性能差距】
Sql的速度是OleDB速度的近10倍
【什么地方使用Dataset?】
1、桌面应用程序中使用,利用客户端的处理能力
2、不同的应用平台之间传输远程数据,比如利用web service传输Dataset
3、需要数据缓存(DataReader是保持数据连接的对象)
其他缓存办法:使用DataReader从数据库中取出数据,循环保存进一个Arraylist,每条数据保存在一个实体类里面,每个字段的数据对应了此类的相应属性。所有这些实体类对象一起构成了数组Arraylist。——这种方法的好处:不仅更有效率,而且更加易于保持,降低和数据库之间的耦合;当然,此数据集合也可以方便的绑定到控件中(http://aspnet.4guysfromrolla.com/articles/102302-1.aspx)。
4、需要自由的获得关系数据的时候,比如主从表。与其每次都从数据库中取相应父栏目下的所有子数据,不如一次性全部取出子数据,然后根据table表之间的关系relation绑定到控件。
【使用Dataset的若干理由】
1、某些场合使用它开发更加方便
2、有时候可以让web客户端像桌面客户端
Trackback: http://tb.blog.csdn.net/TrackBack.aspx?PostId=443359
本文来自CSDN博客,转载请标明出处:http://blog.csdn.net/sooniory/archive/2007/06/16/1654194.aspx
本文来自CSDN博客,转载请标明出处:http://blog.csdn.net/sooniory/archive/2007/06/16/1654194.aspx
本文来自CSDN博客,转载请标明出处:http://blog.csdn.net/sooniory/archive/2007/06/16/1654194.aspx
DataReader和Dataset的性能比较 以及什么时候用dataset什么时候用DataReader的更多相关文章
- ERROR 000732:Output Geodatabase:Dataset Database Connections\Connection to localhost.sde\SDE.Dataset does not exist or is not supported
ArcCatalog 10中向SDE 数据集导入要素类时,出错:ERROR 000732:Output Geodatabase:Dataset Database Connections\Connect ...
- DataSet筛选数据然后添加到新的DataSet中引发的一系列血案
直入代码: var ds2 = new DataSet(); ) { ].Select(" usertype <> 'UU'"); ) { DataTable tmp ...
- Spark——DataFrames,RDD,DataSets、广播变量与累加器
Spark--DataFrames,RDD,DataSets 一.弹性数据集(RDD) 创建RDD 1.1RDD的宽依赖和窄依赖 二.DataFrames 三.DataSets 四.什么时候使用Dat ...
- C# 之 DataReader 和 DataSet 的区别
本文转载自:http://www.cnblogs.com/xinaixia/p/4920630.html 1. 获取数据的方式[1]DataReader 为在线操作数据, DataReader会一直占 ...
- ADO.NET中的DataSet和DataReader
ADO.NET提供两个对象用于检索关系型数据并把它存储在内存中,分别是DataSet和DataReader.DataSet提供内存中关系数据的表现--包括表和次序.约束等表间的关系的完整数据集合.Da ...
- datareader 和dataset 区别
ADO.NET2.0提供了两个用于检索关系数据的对象:DataSet和DataReader.并且这两个对象都可以将检索的关系数据存储在内存中.在软件开发过程中经常用到这两个控件,由于这两个控件在使用和 ...
- DataReader和DataSet的区别以及使用
DataReader和DataSet这两个对象都可以将检索的关系数据存储在内存中.它们在功能使用方面非常相似,但是它们不可以相互替换. 主要区别如表所示: DataReader DataSet 数 ...
- DataRead 和DataSet区别
dataset表示一个数据集,是数据在内存中的缓存. 可以包括多个表DatSet 连接数据库时是非面向连接的.把表全部读到Sql中的缓冲池,并断开于数据库的连接 datareader 连接数据库时是面 ...
- DataSet用法详细 转
DataSet用法详细 转 DataSet用法详细 一.特点介绍 1.处理脱机数据,在多层应用程序中很有用. 2.可以在任何时候查看DataSet中任意行的内容,允许修改查询结果的方法. 3.处理分级 ...
随机推荐
- k8s的ingress资源简述
ingress controller是独立与controller-manager的Ingress的主要作用是可以利用nginx,haproxy,envoy,traefik等负载均衡器来暴露集群内部服务 ...
- php短网址生成算法
<?php //短网址生成算法 class ShortUrl { //字符表 public static $charset = "0123456789ABCDEFGHIJKLMNOPQ ...
- 13.VUE学习之控制行内样式
<!DOCTYPE html> <html> <head> <meta charset="utf-8"> <meta http ...
- Python Map, Filter and Reduce
所属网站分类: python基础 > 函数 作者:慧雅 原文链接: http://www.pythonheidong.com/blog/article/21/ 来源:python黑洞网 www. ...
- 精通SpringBoot--整合druid监控SQL执行
咳咳,今天我们做些简单而实用的东西,使用springboot 整合alibaba的driud数据库监控工具.alibaba已经提供了spring-boot-starter的jar包了.先看pom.xm ...
- Serializer序列器
定义Serializer 1. 定义方法 Django REST framework中的Serializer使用类来定义,须继承自rest_framework.serializers.Serializ ...
- javascript隐藏和显示元素以及清空textarea
当前希望写一个单选框,选中“paste”则显示粘贴框,选中“upload”则提示选择文件. 因为这两种情况只是显示不同,所以只需要用javascript来进行显示和隐藏. 最后的结果大概这样: 初始时 ...
- IIC如何释放数据总线? 为什么=1就是释放?
最近看IIC原理,释放一词经常用遇到,在nxp的标准中也有看到,有点疑惑,因此百度,在百度知道中,有大佬的解释,可以看看何为“释放”,结合数字电子技术,应该可以理解了. 下面总结了一下三个解释何为“释 ...
- Robo 3T
开源,免费的MongoDB桌面管理工具. [官方地址] https://robomongo.org/ https://studio3t.com/
- 如何使用DroidPlugin——DroidPlugin初体验
最近研究了下360的黑科技--DroidPlugin 刚开始不知道怎么用,于是看了这篇博客:http://www.jianshu.com/p/f1217cce93ef 算是引导了我,于是开始自己写写 ...