0

在 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事件发生的频率越来越高,因为它到达了失败的点。

有任何想法吗?谢谢!

4

0 回答 0