日期:2014-05-17  浏览次数:20462 次

使用DaterReader分页读取大数据量数据
请教一下,
在数据库大数据量的情况下(百万)使用以下方式读取数据影响效率吗?
我连接本机数据库看速度还可以,数据库服务器时间有点长
C# code

using (SqlDataReader rdr = SqlHelper.ExecuteReader(SqlHelper.LocalTransactionConnectionString,
 CommandType.Text, sbSql.ToString(), parameters))
            {
               
                while (rdr.Read())
                {
                    count++;
                    if (count >= start && end >= count)
                    {
                        
                        models.Add(model);
                    }
                }                
               
            }


------解决方案--------------------
不建议使用DataReader,最好用DataSet,以免占用连接资源。
------解决方案--------------------
探讨

引用:
不建议使用DataReader,最好用DataSet,以免占用连接资源。


准确的说是我在原有的系统上进行更改。。。原有的系统没有分页。而不想改动太多。。。

------解决方案--------------------
你反正取出的数据不多啊,应该是在在大数据量中去获取获取数据吧,那应该2个问题不大吧,看看SQL语句写的如何,数据库设计的如何
------解决方案--------------------
探讨
请教一下,
在数据库大数据量的情况下(百万)使用以下方式读取数据影响效率吗?
我连接本机数据库看速度还可以,数据库服务器时间有点长
C# code

using (SqlDataReader rdr = SqlHelper.ExecuteReader(SqlHelper.LocalTransactionConnectionString,
CommandType.Text, sbSql.T……

------解决方案--------------------
DataAdapter本身的分页方法
C# code
Fill(DataSet dataSet, string srcTable, IDataReader dataReader, int startRecord, int maxRecords)

------解决方案--------------------
探讨
引用:
引用:

引用:
不建议使用DataReader,最好用DataSet,以免占用连接资源。


准确的说是我在原有的系统上进行更改。。。原有的系统没有分页。而不想改动太多。。。

在读取数据的时候把DataReader改成DataSet应该很方便的吧?
还有建议LZ用存储过程来分页哈,这样效率要高


原有的系统中几……

------解决方案--------------------
探讨
Z我看你的代码是不是把所有的记录都读取出来,再read的循环里面读取相应分页的数据的?
如果是这样的话在数据库查询的时候为什么不直接查询相应分页的数据条数呢?
这样就会大大提高运行的效率了,用datareader也ok的

------解决方案--------------------
探讨

引用:
引用:
Z我看你的代码是不是把所有的记录都读取出来,再read的循环里面读取相应分页的数据的?
如果是这样的话在数据库查询的时候为什么不直接查询相应分页的数据条数呢?
这样就会大大提高运行的效率了,用datareader也ok的


他懒呗。


呵呵,真的不是我懒,因为项目的情况,我已经是天天加班到10点,周六日我也在上班了。。。所……