Commit Transaction 耗时太长?

Commit Transaction take too long?

我有一个包含以下代码的存储过程:

BEGIN TRY
--BEGIN TRANSACTION @TranName

    DECLARE @ID int

    INSERT INTO [dbo].[a] ([Comment],[Type_Id],[CreatedBy])
    VALUES ('test',1,2)

    SET @ID = SCOPE_IDENTITY()

    INSERT INTO [dbo].[b] ([Can_ID],[Com_ID],[Cal_ID],[CreatedBy])
    VALUES (1,@ID,null,2)

    UPDATE c SET LastUpdated = GETDATE(), LastUpdatedBy = 2 WHERE b.id = @ID

    --COMMIT TRANSACTION @TranName

    SELECT * from [View] where a.id=@ID
    END TRY
    BEGIN CATCH
--ROLLBACK TRANSACTION @TranName
END CATCH

那里的每个语句 运行 单独(就像现在一样)运行 很快。 但是当我们从 Transaction 的一段代码中删除注释时,脚本 运行 时间从 1 秒增加到 2 分钟以上

系统已经 运行 运行了很长一段时间,以前这不是问题,我一直在尝试搜索有关 SQL 服务器如何处理事务的文档如果有任何可能影响 SQL 性能的事情,我唯一想到的就是事务日志...但理想情况下,这些单独的语句 运行 也在单个事务中,有什么想法吗?

正如 Jens 所建议的问题是由于某些表阻塞,在重置 SQL 服务器服务后,此锁消失并且数据库再次开始正常工作。