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

Recordset.PageSize属性的性能,操作大量数据时的性能!
数据库中数据较多,我希望在页面中显示一部分数据,如果ADODB.Recordset的PageSize属性实现分页,在之前需要使用open方法读取全部数据,这是否意味着这个PageSiz属性仅仅是方便程序员显示分页而存在,若需要真正从数据源中读取分页数据,提高读取性能,节约内存和时间的话,还是需要编写相应的SQL查询吧?
sql? 分页 性能

------解决方案--------------------
如果你能确定所有的数据都会用到的话,那么一次全取出会好些。否则,还是用sql来查吧
------解决方案--------------------
1. --使用row_number() over(order by 字段) 产生行号, order by 为排序字段
2. --使用between and 取从哪条记录到哪条记录?
3. --分传入参数: PageSize,PageIndex,由这两个参数计算出[startRecord] AND [EndRecord]


SELECT * 
FROM (SELECT *,ROW_NUMBER() OVER (ORDER BY CourseName) AS RowNumber FROM IndvCourse ) T 
WHERE T.RowNumber BETWEEN [startRecord] AND [EndRecord];

------解决方案--------------------
建议要显示多少就查多少
------解决方案--------------------
数据库级别的分页是必要的。