数据过多时sql中返回数据,开销大,用户还不一定会用到。这时使用sql分页查询,更具用户操作返回对应的数据就能极大程度提高效率。
分页有多种方法:top in、exist、row_number()等,在此只叙述相对高效的
max/top 分页方式
1.原始的
select * from dbo.pagetest where id >(select max(id) from (select top(9900) id from dbo.pagetest order by id)a) order by id
2.封装存储过程
create Proc pageSeparate(
@count int, -- 数据条数
@tabName nvarchar(50), --表名
@pageIndex int --区间 多少也开始查询
)
as
begin
declare @sqlStr nvarchar(max)
set @sqlStr = ‘select * from ‘[email protected]+‘ where id >(select max(id) from (select top(‘+cast((@pageIndex*@count)as nvarchar(20))+‘) id from ‘[email protected] +‘ order by id)a) order by id‘
print @sqlStr
exec(@sqlStr)
end