DataSet与 ExecuteReader()的性能比较

本文对比了使用DataSet和ExecuteReader两种方法在获取和处理数据库单条记录时的性能。通过在本地IIS和虚拟主机上的测试,发现两者在不同环境下表现有所差异。在个人电脑上,DataSet速度稍快,而虚拟主机上Reader表现更优。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

之前做了一个数据处理的公共类DbHelper,里面包含了最基本的对数据库的处理方法。其他类只需调用就可以了。但对于根据ID获取某组数据的情况,不知道用Dataset好还是Reader好,这两种方法都可以获得Select * from xxx where ID=@ID之类的单条数据,然后将这组数据按字段给asp.net控件赋值。

1、DataSet的实现方法

DataSet ds= DbHelper.ExecuteQuery(sq,param);

if(ds.Tables[0].Rows.Count>0)

{

//用ds.Tables[0].Rows[0]["xxxx"]向控件赋值

}

2、Reader的实现方法 

OleDbDataReader reader = DbHelper.ExecuteAndReturnReader(sql, param);

if (reader.Read())

  {

            //用reader["xxxx"]并赋值

reader.Close();//关闭reader

}

      然后不知道哪种方法用起来速度更快,于是自己写了一个测试页面,专门用这两种方法分别调出数据并赋值测试,比较它们的用时。先是在个人电脑的IIS上测试,后来上传到虚拟主机上测试。得到的结论是:两者的速度相差不多,在个人电脑上,DataSet的速度更占优势,而在虚拟主机上,Reader的速度表现胜出。

个人电脑的测试结果:


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值