我有這樣的代碼尋呼MS SQL
ALTER PROCEDURE [dbo].[Model_Core_BlogPost_GetLatestPaging]
@PageSize INT,
@CurrentPage INT
AS
BEGIN
DECLARE @PageStart int, @PageEnd int
SET @PageStart = @CurrentPage * @PageSize
set @PageEnd = @PageStart + @PageSize
;with C as (
SELECT
e.blogpostid,
e.PreviewText,
e.Headline,
e.URLHeadline,
u.Blogname,
u.imageurl AS ImageURL,
e.CommentsCount,
e.HitsCount,
e.Created,
ROW_NUMBER() over (order by e.created desc) as rownum
FROM BlogPosts e
INNER JOIN Users u ON e.BlogUserID = u.UserID
WHERE e.[Status] = 1 and e.Deleteddate is null
)
SELECT *
FROM C
WHERE rownum > @pagestart
AND rownum <= @pageend
END
我有問題時,@CurrentPage是大量的和我經常在我的應用程序獲得SQL超時。
解決方案的任何想法?
請發佈您的執行計劃 – 2013-04-10 19:24:50
您能否提供與BlogPosts和用戶相關的任何模式信息?我的猜測是你可以添加一個索引來幫忙。 – 2013-04-10 19:32:02
我已經在where子句中添加了索引。當頁面數量很大時,開發另一個SP是否更好? – user1914109 2013-04-11 06:25:36