在SQL Server 2012中使用新的分页stynax的性能问题(OFFSET n ROWS FETCH NEXT m ROWS ONLY)

时间:2012-07-05 13:46:48

标签: sql-server performance sql-execution-plan

我在SQL Server 2012中找到了一个关于新分页stynax的post。比如

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

OFFSET 10 ROWS
FETCH NEXT 10 ROWS ONLY

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

我是SQL Server新手,有人可以告诉我这个吗?感谢。

Screen shot of Execution Plan

1 个答案:

答案 0 :(得分:4)

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

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

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

可帮助?