我查资料大部分分页查询在查询后面分页时候,性能下降非常厉害,查资料啥的,找到个不错的分页语句.
第一个分页语句
SELECT StatisticsDate,* FROM ((select ROW_NUMBER() over(order by BusinessID) as row_num,* from OverDueStatic WITH(NOLOCK) where StatisticsDate='2018-7-18')) o where o.row_num between 0 and 5
大部分这个语句性能够高了,但实际还是不理想,因为主查询语句,扫全表。
第二个分页语句
Declare @bid int
Declare @start int
Declare @pagesize int
SET @start=5
SET @pagesize=10
--下面两行实现快速滚动到我们要取的数据的行,并把ID记录下来
Set Rowcount @start
Select @bid=BusinessID from OverDueStatic WITH(NOLOCK) WHERE StatisticsDate='2018-7-18' Order by BusinessID
Set Rowcount @pagesize
--能不用*就不用
Select BusinessID,* From OverDueStatic o WITH(NOLOCK) WHERE StatisticsDate='2018-7-18' AND BusinessID>=@bid Order By o.BusinessID
Set Rowcount 0
这个语句性能不错,回来测试下具体情况