首页 > 数据库技术 > 详细

Sql 分页查询效率分析

时间:2014-11-06 09:24:34      阅读:221      评论:0      收藏:0      [点我收藏+]

选取了2中效率比较高的方式比较效率:row_Number() 、offset fetch

表test中有1000条数据,2个字段:field1(int),field2(nvarchar)

--1000条数据,查询500次第1-10行,39s
--1000条数据,查询500次第500-550行,87s
--1000条数据,查询500次第150-160行,88s
DECLARE @uId int
SET @uId=1 BEGIN while @uId<=500 BEGIN
SELECT *
FROM (
SELECT row_number() over(
                         ORDER BY [dbo].[test].[filed1] desc) as rownum,* from [dbo].[test]) temp
WHERE temp.rownum BETWEEN 150 AND 160;


SET @uId=@uId+1 END END;

 --1000条数据,查询500次第1-10行,78s
--1000条数据,查询500次第500-550行,78s
DECLARE @uId int
SET @uId=1 BEGIN while @uId<=500 BEGIN
SELECT *
FROM [dbo].[test]
ORDER BY [dbo].[test].[filed1] DESC
OFFSET (10 * (15 - 1)) ROWS FETCH NEXT 10 ROWS ONLY
SET @uId=@uId+1 END END

测试效果:

row_Number()不稳定,考前的记录查询比较快,靠后的记录查询时间会增加

OFFSET FETCH 稳定,考前靠后的查询时间都是基本一样



Sql 分页查询效率分析

原文:http://blog.csdn.net/xuewuzhijing10/article/details/40835553

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!