0

我在 SQL Server 2012 中找到了一篇关于新的分页 stynax 的帖子。喜欢

SELECT p.ProductName
FROM Products p
ORDER BY p.ProductID

OFFSET 10 ROWS
FETCH NEXT 10 ROWS ONLY

那很棒。但是当我查看执行计划时,成本是 100%。这是否意味着 SELECT 语句将获取所有行然后执行 paing?这会导致性能问题?

我是 SQL Server 新手,谁能告诉我这个?谢谢。

执行计划截图

4

1 回答 1

4

无成本意味着与所有语句相比,特定语句的成本是多少。由于您只有一条语句,因此它占用了整个执行时间的 100%。如果您有两个语句,那么它将分摊成本。

另外为了避免混淆,我建议您以这种方式编写查询,这清楚地表明 OFFSET 实际上是 SELECT 查询的一部分:

SELECT p.ProductName
FROM Products p
ORDER BY p.ProductID
   OFFSET 10 ROWS
   FETCH NEXT 10 ROWS ONLY

有帮助吗?

于 2012-07-09T14:37:39.187 回答