我对ExtractedMessages
表运行以下存储过程,该表最多可包含100M条记录(100,000,000)。
出于我的应用目的,此存储过程应在不到一秒的时间内运行
CREATE PROCEDURE GetNextMessages
@taskId bigint
AS
BEGIN
SET NOCOUNT ON;
DECLARE @ci INT
DECLARE @cr INT
SELECT
@ci = CurrentIndex, @cr = CurrentResources
FROM
ExtractedTasks
WHERE
Id = @taskId
UPDATE ExtractedTasks
SET CurrentIndex = @ci + @cr
WHERE Id = @taskId
SELECT *
FROM ExtractedMessages
WHERE TaskId = @taskId
ORDER BY Id
OFFSET @ci ROWS
FETCH NEXT @cr ROWS ONLY
END
注意:cr不能超过1500
答案 0 :(得分:0)
答案 1 :(得分:0)
感谢大家的帮助 我能够识别问题,毕竟它是运行SQL Server的服务器上的内存管理问题。我增加了服务器的专用内存。问题已经解决了。 SP现在顺利运作