第一条语句:
SELECT TOP 页大小 * FROM Table1
WHERE id NOT IN
(SELECT TOP (页码-1)*页大小 id
FROM Table1)
第二条语句:
SELECT TOP 页大小 *
FROM Table1 a WHERE not exists
(select * from (select top (页大小*页数) * from Table1 order by id) b where b.id=a.id )
order by a.id
第三条语句:
select top 页大小 *
from table1
where id>(select max (id) from (select top ((页码-1)*页大小) id from table1 order by id) as T) order by id
在1000万的数据表中测试,结果发现:
在执行100页以下的分页命令时,三条语句的速度都很好
在执行大于100页小于1万页时,第一条语句的速度下降,但第二、三条语句执行良好
在执行1万页以上,第二条语句的速度也下降,但第三条语句执行良好
所以在执行分页命令时,尽量用第三条SQL语句来完成.