您的位置:首页 > 数据库

SQL Server 2005-2008 ROW_NUMBER() 分页函数效率

2010-09-30 19:45 441 查看
-- 测试数据量:2161852 条

declare @i datetime

set @i = GETDATE();

--SQL 2005 -2008

-- 开始

WITH temp AS (SELECT id,title,body, ROW_NUMBER() OVER (ORDER BY id) AS 'RowNumber' FROM Article)

SELECT * FROM temp

WHERE RowNumber BETWEEN 5000 AND 5010

-- 结束

print '耗时'+cast(datediff(ms,@i,getdate()) as varchar(10)); -- (11 行受影响)耗时3606

set @i = GETDATE();

--SQL 2000

-- 开始

select top 11 * from Article where id not in (select top 4999 id from Article order by id) order by id

-- 结束

print '耗时'+cast(datediff(ms,@i,getdate()) as varchar(10)); -- (11 行受影响) 耗时22156



官方说明:http://msdn.microsoft.com/en-us/library/ms186734.aspx



以上这篇文章转自:http://fangjunai.blog.163.com/blog/static/1124970520108191536991/
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: