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