A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 朱君 中级黑马   /  2013-3-12 11:56  /  1708 人查看  /  3 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

sqldatareader和Adapter哪个效率高,大数据量的时候用哪个比较好

评分

参与人数 1技术分 +1 收起 理由
张文 + 1

查看全部评分

3 个回复

倒序浏览
个人感觉sqldatareader应该快一些.因为用Adapter取出来的数据需要先填充到DataSet中,再从DataSet中取出来用,而sqldatareader是直接从数据库取出来用.
再给你一点资料 有助于理解:
DataAdapter一般配合离线式数据结构使用,如DataSet,DataTable.而DataReader则是要求保持数据连接为打开的状态。如果你不需要对数据做复杂处理,例如仅仅只需要从数据源取出数据进行显示,完全可以使用DataReader(效率比后面提到的方式高些),反之如果你需要进行一些耗时的处理就最好使用DataAdapter(配合DataTable或DataSet)。为什么呢?由于DataReader需要保持连接打开,如果这时进行一些耗时操作,会影响连接池回收数据库连接以供重用。

评分

参与人数 1技术分 +1 收起 理由
张文 + 1

查看全部评分

回复 使用道具 举报
因为用Adapter取出来的数据需要先填充到DataSet中,这样就减轻了服务器的压力,第一次执行的时候可能感觉不给力,但是在此调用的时候,就不需要访问服务器了。sqldatareader每次都要从数据库中读取数据,当数据量相当大的时候绝对不给力。所以当大数据量的时候还是Adapte效率高

评分

参与人数 1技术分 +1 收起 理由
张文 + 1

查看全部评分

回复 使用道具 举报
DataAdapter就像大卡车一样一次性能读大量的数据,而DataReader就像摩托车一样只能一条条读取数据
当读数一两条数据时用DataReader合适省资源吧,当数据超级多时用DataAdapter更方便
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马