我在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新手,有人可以告诉我这个吗?感谢。
答案 0 :(得分:4)
无成本意味着与所有陈述相比,特定陈述的成本是多少。由于您只有一个语句,因此占用整个执行时间的100%。如果你有两个陈述,那么它会分摊成本。
另外为了避免混淆,我建议你用这种方式编写查询,这清楚地表明OFFSET实际上是SELECT查询的一部分:
SELECT p.ProductName
FROM Products p
ORDER BY p.ProductID
OFFSET 10 ROWS
FETCH NEXT 10 ROWS ONLY
可帮助?