我在存储过程中有以下select语句:
SELECT *
FROM dbo.vehicle
ORDER BY date
OFFSET ((@num_pages - 1) * @nb_elements) ROWS FETCH NEXT (@nb_elements) ROWS ONLY
其中@num_pages
和@nb_elements
是我的存储过程条目参数。
SELECT * FROM dbo.vehicle
是否会被完全计算,然后才会返回我的@nb_elements
?或者,当SELECT * FROM dbo.vehicle
行到达时,@nb_elements
语句是否会停止?
我在使用这种语句的存储过程中遇到了巨大的性能问题。
答案 0 :(得分:0)
对于这种类型的语句,您不会遇到巨大的性能问题,因为这不是有效的语句。 OFFSET
仅作为ORDER BY
的一部分有效。
对其进行排序,向下移动OFFSET
行数,然后返回ROWS FETCH NEXT
。向下移动OFFSET
行数并不会影响您的表现。