当前位置: 代码迷 >> ASP.NET >> da.Fill(ds, startRecord, maxRecords, "table"); 工作原理解决办法
  详细解决方案

da.Fill(ds, startRecord, maxRecords, "table"); 工作原理解决办法

热度:9494   发布时间:2013-02-25 00:00:00.0
da.Fill(ds, startRecord, maxRecords, "table"); 工作原理
C# code
 PrepareCommand(conn, cmd, cmdtype, strsql, parameters); OleDbDataAdapter da = new OleDbDataAdapter(); da.SelectCommand = cmd; DataSet ds = new DataSet(); try {     da.Fill(ds, startRecord, maxRecords, "table");     return ds; } catch (System.Data.OleDb.OleDbException e) {     throw e; } finally {     conn.Dispose(); }




问个问题:da.Fill(ds, startRecord, maxRecords, "table");


这一句实现分页查询表功能,但是我不了它的工作原理。

我的假想原理:
  假设数据库中有500万条数据,传进来sql语句查询表中第400万-401万条数据,并进行排序,最后输出。
  是不是系统在不停的操作着500万条数据,拍好序后,最后截取那1万条数据输出。
  ------会不会卡死了? 我所说的1万是比喻,也可以是取其中的两条数据。

------解决方案--------------------------------------------------------
试试呗,这得看你机器和数据量还有网络传输情况,应该不会很慢的
------解决方案--------------------------------------------------------
应该不会扫描500W次吧,应该对这个有优化的,比如到了满足条件的时候直接返回要查询的数据不再向下查询
  相关解决方案