我有一个视图,它包含我在SQL中的存储过程中使用的5个表之间的联合。基本上我想为这个视图和我添加分页;我设法这样做,因为我将在下面向您展示。主要问题是它;它相当慢。我主要是一个Linq有点人,所以优化这个证明是棘手的:
SET @PageSelect = 'SELECT myFields,
RowNumber FROM
(
SELECT myFields,
ROW_NUMBER() OVER (ORDER BY CreateDate DESC, ProductID) AS RowNumber
FROM'+ @myView+'
) AS BasicSource
WHERE RowNumber BETWEEN ' +
CAST(@inPage * @inPageSize - @inPageSize + 1 AS NVARCHAR) + ' AND ' + CAST(@inPage * @inPageSize AS NVARCHAR) +
' ORDER BY RowNumber'
这基本上是我的工作代码,但它需要优化,我不知道我还能做些什么来优化它
问题1:
视图是否返回其所有值(先执行)?它返回大约2密耳的结果,并解释了为什么它花了这么长时间。
问题2:我可以在视图中插入某种分页(即使我将整个视图代码移到我的SP中)
谢谢