有一表(ProductInfo)有20万条记录,写出它的分页sql语句。表中有ID(int) 标识列,要求性能好,效率高!注:区限记录(beginrecord,endrecord) 每页20记录 当前页pageIndex我写了两个:
1、select * from (select *,ROW_NUMBER() OVER(ORDER BY ID Asc) AS 'rownumber' from ProductInfo) T
where T.rownumber between beginrecord and endrecord2、select top(20) * from ProductInfo
where (id not in (select top(20*(pageIndex-1)) ID from ProductInfo order by ID))
order by ID Asc我发现 数据库 一大。同时访问的人多 ,很耗性能,
请问 大家有 更改 的 办法没有
1、select * from (select *,ROW_NUMBER() OVER(ORDER BY ID Asc) AS 'rownumber' from ProductInfo) T
where T.rownumber between beginrecord and endrecord2、select top(20) * from ProductInfo
where (id not in (select top(20*(pageIndex-1)) ID from ProductInfo order by ID))
order by ID Asc我发现 数据库 一大。同时访问的人多 ,很耗性能,
请问 大家有 更改 的 办法没有
exec sp_executesql
select top 20 * from productinfo where id>
(select max(id) from
(select top (20*(pageIndex-1)) ID from ProductInfo order by ID)a)
order by id--将id设置为主键。
数据读取相当频繁,一秒钟有200-500个查询请求,这样该如何处理,请高人指点啊