对于具有 > 1,000,000 行和可能更多行的表!
我自己没有做过任何基准测试,所以想征求专家的意见。
看了一些关于 row_number() 的文章,但它似乎对性能有影响
其他选择/替代方案是什么?
最佳答案
我们使用 row_number()
效果很好,并没有真正出现任何性能问题。我们的分页查询的基本结构如下所示:
WITH result_set AS (
SELECT
ROW_NUMBER() OVER (ORDER BY <ordering>) AS [row_number],
x, y, z
FROM
table
WHERE
<search-clauses>
) SELECT
*
FROM
result_set
WHERE
[row_number] BETWEEN a AND b
它适用于我们超过 1,000,000 行的表。
关于sql - sql 2008中大表的高效分页,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2445042/