分页排序,当数据达到十万、百万级别的时候,使用何种方式分页排序效率高呢!最近在这个问题上不断的纠缠,网上也有很多方法,但各有各的不足之处。现在列出以下方法,仅供参考:
以下方法测试环境:数据量总共166983条记录,每页30条,总共有5567页,读取的字段数目为28列
第1种方法:
此方法有两个缺点:
第一:只能用在sqlserver2005中,2000不能使用
第二:当页数达到五千页后,最后页数的时间在1-2秒之间,效率不高
第2种方法:
此种方法每页用的时间在0.3-0.5秒之间
第3种方法:
此种方法前后页面读取时间在0.1-0.4秒之间,中间页读取的时间在0.4-0.8秒之间。
先把第1、3中方法用C#写出类,直接用sql语句,不用存储过程。
C#类方法1
C#类方法2
ps:
//this.KeyName;关键字段,唯一
//this.Order;排序方式desc或者asc
//this.OrderName;排序字段
//this.PageCount;总页面数目
//this.PageIndex;当前页面数目
//this.PageSize;页面大小
//this.RecordCount;总记录数目
//this.SelectStr;要显示的列
//this.TableName;表名
//this.WhereCondition;查询条件