您的位置:首页 > 数据库

sql分页语句的执行效率

2011-06-13 10:45 239 查看
项目完成了,总是被一些效率问题困扰,查看一些资料,总结记录了几种sql分页的执行效率:

方法一:

1.
SELECT TOP 页大小 *
FROM table1
WHERE id NOT IN
(
SELECT TOP 页大小*(页数-1) id FROM table1 ORDER BY id
)
ORDER BY id

方法二:

SELECT TOP 页大小 *
FROM table1
WHERE id >
(
SELECT ISNULL(MAX(id),0)
FROM
(
SELECT TOP 页大小*(页数-1) id FROM table1 ORDER BY id
) A
)
ORDER BY id


SELECT TOP 页大小 *
FROM
(
SELECT ROW_NUMBER() OVER (ORDER BY id) AS RowNumber,* FROM table1
) A
WHERE RowNumber > 页大小*(页数-1)

总结:方法1利用id范围not in分页,效率次之

方法2利用id最大值分页,效率最高

方法3利用游标分页,效率最差
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息