SqlServer2005分页速度比较

3种分页方式,分别是max方案,top方案,row方案

效率:
  第1:row
  第2:max
  第3:top

缺点:
  max:必须用户编写复杂Sql,不支持非唯一列排序
  top:必须用户编写复杂Sql,不支持复合主键
  row:不支持sqlServer2000

测试数据:
320万条数据,每页显示10条数据,分别测试了2万页、15万页和32万页。

页码,top方案max方案row方案
2万,60ms46ms33ms
15万,453ms343ms310ms
32万,953ms720ms686ms

具体操作SQL代码如下 :

TOP:

 

select top 10 * from Table1
where Id not in(select top 开始的位置 Id from Table1)

 

 

MAX:

 

select top 10 * from Table1
where Id>(select max(Id)
from (select top 开始位置 Id from Table1order by Id)tt)

 

 

ROW:

select *
from (
select row_number()over(order by tempColumn)tempRowNumber,*
from (select top 开始位置+10 tempColumn=0,* from Table1)t
)tt
where tempRowNumber>开始位置

 

 

 

 

posted @ 2010-06-21 14:45  陈跳跳  阅读(212)  评论(0编辑  收藏  举报