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次吧,应该对这个有优化的,比如到了满足条件的时候直接返回要查询的数据不再向下查询