sql - sql 2008中大表的高效分页

标签 sql sql-server performance pagination paging

对于具有 > 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/

相关文章:

mysql - 如何删除 mysql 中以关键字命名的表?

java - 插入 Sql 查询不适用于 HQL

jquery - 如何在asp.net中使用jquery连接数据库

sql - 如何编写使用时间损耗的查询(例如 1 天内、2 天内)?

performance - AVX mat4 inv 实现比 SSE 慢

c - 通过计算复制 C 数组的更快方法

sql - 内部联接顺序在我的查询中确实很重要

sql - 将 SQL 值计算到新插入中

Sql Server - 结果空间不足,无法将 uniqueidentifier 值转换为 char

javascript - 为什么使用 window.variable 访问变量速度较慢?