读书人

是SqlDataReader还是dataset比较快速呢

发布时间: 2011-12-28 22:45:21 作者: rapoo

是SqlDataReader还是dataset比较快速呢
只是读取信息然后循环处理,不用修改保存;数据量比较多,大概要生成相应的几万个文件

★★★有时候似乎reader快一些★★★
SqlCommand sqlcom = new SqlCommand();
sqlcom.CommandType = CommandType.Text;

sqlcom.CommandText = strSql
sqlcom.Connection = thisConnection;

SqlDataReader objReader = sqlcom.ExecuteReader(CommandBehavior.CloseConnection);

while(objReader.Read())
{
......
}

★★★有时候dataset比reader还块★★★
SqlCommand sqlcom = new SqlCommand();
sqlcom.CommandType = CommandType.Text;

sqlcom.CommandText = strSql;
sqlcom.Connection = thisConnection;

SqlDataAdapter sqlDA = new SqlDataAdapter();
sqlDA.SelectCommand = sqlcom;

DataSet objDataSet = new DataSet();
sqlDA.Fill(objDataSet);

for(i =0;i <objDataSet.Tables[0].Rows.Count;i++)
{
......
}

[解决办法]
看情况。
如果数据要通过网络从数据库服务器传输到网页服务器,不用测试就知道是DataSet快
[解决办法]
帮顶 !
[解决办法]
while(objReader.Read())
{
......
}

for(i =0;i <objDataSet.Tables[0].Rows.Count;i++)
{
......
}
关键是这两个里面的处理是否复杂
sqlDA.Fill(objDataSet);
Fill方法的实现实际上还是用到了SqlDataReader
[解决办法]
好像在那本书上看到过相关的论述,一时想不起来了,大概意思如果是本地数据库查询的话使用reader是比较合算的。
[解决办法]
一般Reader要快,而且快的多!
[解决办法]
万事都没有一个绝对,要看具体情况吧..

如果数据库服务器在本机,用DataReader是比较好的..

仅供参考..
[解决办法]

我开始也认为DataReader要快很多,其实不是的!
DataReader好像有独占方式打开连接,所以,他连接数据库了,很多操作就被限制了;dataset据说是要慢,但是他切断式连接,而且循环遍历比较方便。
末了,dataset还能体现表之间的关系,很号用1
[解决办法]
数据量大的话,不能用DataSet,因为DataSet是将数据都放到内存中,因此会占用大量内存;DataReader类似一个服务器端的游标,占用资源小。因此数据量大的时候,DataReader会快很多。
[解决办法]
当然是单项数据集快,不过要看场合
单项数据集由于不用支持定位和内存缓冲,不需要生成游标,速度快多了。
[解决办法]
当然是单项数据集快,不过要看场合

[解决办法]
我觉得要看系统的架构。
[解决办法]
个人认为 不在一个层上没可比性
[解决办法]
用reader比较多
[解决办法]
和数据库的选用有关么?

读书人网 >C#

热点推荐