在 SQL Server 2008 (sp2) 存储过程中,在开始事务之前,我创建了两个临时表。我在事务中插入它们。当事务遍历相当大的数据集(约 1,200 次)时,存储过程无法完成。具体来说,跟踪表明
SELECT * FROM #tmpTable2
在下面的代码中开始但没有完成。当循环大约是原来的一半时,它工作正常。
IF [true] > 0 --error
BEGIN
SELECT * FROM #tmpTable1
SELECT * FROM #tmpTable2
DROP TABLE #tmpTable1
DROP TABLE #tmpTable2
rollback TRANSACTION
return -1
END
请注意,在跟踪中,transactionlog
事件发生的频率越来越高,因为它到达了失败的点。
有任何想法吗?谢谢!