SqlDeadlockHelper
很长一段时间以来,我们一直在使用一种机制(一个名为 的类),它在尝试由于死锁而失败的数据库调用时帮助了我们很多。SqlDeadlockHelper
将捕获 a SqlException
,认识到这是一个死锁,然后再试一次。第二次尝试几乎总是成功。
对命令和/或连接超时执行此类操作是否安全?我的意思是,在 SQL Server 上完成工作是不可能的,只能在数据返回给调用者之前超时,是吗?
编辑:
事务已被提及作为将调用视为工作单元的一种方式。这样它就可以成功或完全回滚。但是,一个只做一件事的 ADO.NET 调用又如何呢?是否有必要将其包装在事务中?