首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 数据库 > SQL Server >

昨日去面试,对面非说1000W条数据分页查询要2秒以上,贴测试结果

2013-07-16 
昨天去面试,对面非说1000W条数据分页查询要2秒以上,贴测试结果。5年前第一次将分页语句用于某门户网站时依

昨天去面试,对面非说1000W条数据分页查询要2秒以上,贴测试结果。
5年前第一次将分页语句用于某门户网站时依稀记得做过测试,插了几百万条数据在0.01秒以下,昨天去一家公司面试,谈到此事,对面技术说起千万级数据查询要2秒以上。
有疑惑今天就做了测试。

declare @i int set @i=1 while @i<=10000000   begin     
insert into tt values('aa')     set @i = @i + 1  end
首先插了1000万条数据,破机器插了30分钟左右。


 declare @d datetime 
SET @d=getdate()
select top 10 * from tt where Id not in(select top 1000000 Id from tt)
SELECT [语句执行花费时间(毫秒)]=datediff(ms,@d,getdate()) 

开始测试,分别测试了3种分页,时间如下:


select top 10 * from tt where Id not in(select top 1000000 Id from tt)   530-590毫秒
 select top 10 * from tt where Id> (select max(Id)from (select top 1000000 Id from tt order by Id)tt)      7-9秒
SELECT * FROM (SELECT ROW_NUMBER() OVER (order by T.ID desc)AS Row, T.*  from tt T ) TT WHERE TT.Row between 1000000 and 1000050      16-27秒 


顺便问下还有效率更高的没。。
[解决办法]
SQL SERVER2012新分页方式

http://topic.csdn.net/u/20120319/19/fb516bd9-f600-430a-8d0f-ed6a911f4ca2.html?33482

热点排行
Bad Request.